在 Apache + SSL 在 Win32 的部分, 说真的实在不好找
你们可以参考一下 The Apache + SSL on Win32 HOWTO 的做法
当然照着上边做也没关系, 每个人有每个人的做法看个人吧试试看就知道了
虽然我是自己 Compile 来装的, 但我打字比较懒了点, Compile 教学的部分
请自行参考 OpenSSL 跟 mod_ssl 的内附文件 For Win32
基本上只要架好 Apache + SSL 其他如 ActivePerl, MySQL ,PHP 都可以慢慢加进来
在 Hunter 这里可以找到已经编译好的,视个人需要自行取用, 记得寄封Email谢谢人家喔!!
以下列出最快的安装方式供参考, 原理....自己看各套件的内文说明
安装所需档案
Apache_2.0.49-Openssl_0.9.7d-Win32.zip
openssl.cnf (在那个 here 连结)
01. 建议最好先装 Apache 2.0.49 再来解压缩 Apache_2.0.49-Openssl_0.9.7d-Win32.zip,
记得解压缩后修改路径直接覆盖原来安装的档案上
02. 基本上您已经完成 Apache + mod_ssl + OpenSSL 的安装了
接下来得先开始设定您的 httpd.conf
找到 Listen 80 (不能注解掉喔, 至少知道你的网站是活的)
找到 LoadModule ssl_module modules/mod_ssl.so (不能注解掉喔, 要开 SSL 要靠这支 Modules 了)
03. 这里预设您除了正常网站外同一个 IP 或 DomainName 上同时有 SSL 所以,
您除了设定您一般的网站路径外 VirtualHost 也要一并设定
04. 以 Name-Based 为例, 其他请依实际安装为准
记得这里的设定一定要跟上边的一样, 不然你的主网页会找不到喔
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin 您的email
DocumentRoot "/您网页的实际路径"
ServerName DomainName:80
ErrorLog logs/DomainName_error_log
CustomLog logs/DomainName_access_log common
</VirtualHost>
05. 再这边您可以稍微注意一下上边有 Include conf/ssl.conf 没错!!
接下来就是设定 SSL 要开的网页设定, 暂时先不教产生凭证 Key 的方法
既然再同一个目录先做设定的部分
找到 SSLMutex file:logs/ssl_mutex 并注解掉, Win32 上不支援此方式,
所以您可以改用 SSLMutex none 或是 SSLMutex default
接下来仍是 VirtualHost 的设定
找到 <VirtualHost _default_:443> 改用 <VirtualHost *:443>
DocumentRoot "/您网页的实际路径"
ServerAdmin 您的email
ServerName DomainName:443
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
找到 #SSLCertificateChainFile conf/ssl.crt/ca.crt 把注解拿掉(要自己发给自己的话)
找到 #SSLCACertificatePath conf/ssl.crt 把注解拿掉(要自己发给自己的话)
增加 SSLCACertificateFile conf/ssl.crt/ca.crt
06. 到此已完成设定的基本工作了, 这里我稍微保留一下, 您可以暂时不用理会
找到 <IfDefine SSL> 跟 </IfDefine SSL> 我是注解掉的(懒得改启动设定), 如果您在
启动 Apache 时, 仍无法让您的 SSL 动作的话才跟着做这项
07. 接下来要开始制作认证的凭证准备阶段
请切换至 Apache 的 bin 目录下, 把您下载的 openssl.cnf 置于此
并修改一下 [ CA_default ] 内的内容如下(既然是懒人法请跟着做喔!!其他倒是无关紧要)
dir = ssl
certs = $dir\\certs
crl_dir = $dir\\crl
database = $dir\\index.txt
new_certs_dir = $dir
certificate = $dir\\cacert.pem
serial = $dir\\serial
crl = $dir\\crl.pem
private_key = $dir\\privkey.pem
RANDFILE = $dir\\privkey.rnd
08. 依上述于 bin 目录下新增一个 ssl 目录
在 ssl 目录内新增 index.txt 档, 内容空白就好
在 ssl 目录内新增 serial 档, 内容请填 01 就好
09. 切换回 Apache 的 bin 目录下吧!!
这里我们要用命令提示字元 或 Win-DOS 视窗来设定, 所以为方便起见, 请设为 Apache 的 bin 目录下
当然您要写成 *.BAT 省在视窗下打那些重复执行的指令也行, 假设我们自己要发给自己 CA 认证
当然 CAroot 一定是自己并加签给自己
10. 产生 CA Private Key -- 执行 openSSL genrsa -des3 -out ssl/ca.key 1024
1024 为使用 128-bit 加密, 并输入您的安全密码
11. 产生 CA Require 凭证需求 执行 openssl req -config openssl.cnf -new -key ssl/ca.key -out ssl/ca.csr
输入您的申请书资料, 这里的可以用 "." 来当无资料输入使用, Domain 或 Websit 在这并无特殊指定输入, 请依显示输入既可
12. 产生 CA Public Crt 凭证 -- 执行 openssl x509 -days 3650 -req -signkey ssl/ca.key -in ssl/ca.csr -out ssl/ca.crt
预设是 30 天过期, 3650 是约 10 年
13. 接下来, 我们要为自己的 Server 或是个人加签凭证, 这里以 Server 为例
产生 Server Private Key -- 执行 openSSL genrsa -out ssl/server.key 1024
这里预设 Server Private Key 不设定安全密码以免无人值守时电脑关机重开无法启动 Apache (因为要密码才能启动)
这我倒没在 Win32 试过, Unix-Like 铁定会要求密码
14. 产生 Server Require 凭证需求 -- 执行 openssl req -config openssl.cnf -new -key ssl/server.key -out ssl/server.csr
输入您的申请书资料, 跟上边的一样, 不过这里的 Domain 或 Websit 在这最好填入您的 DomainName 或 主机全名(Host.DomainName)
15. 产生 Server Public Crt 凭证 -- 执行 openssl ca -config openssl.cnf -days 3650 -cert ssl/ca.crt -keyfile ssl/ca.key -in ssl/server.csr -out ssl/server.crt
输入您的 CA Private Key 安全密码完成制作手续
16. 现在您的 ssl 目录下已经有了必要的档案, 接下来开始复制到所需的路径下
请在 Apache 下之 conf 目录下建 ssl.crt 与 ssl.key 这 2 个目录
将 ca.crt 与 server.crt 复制至 conf/ssl.crt 下
将 server.key 复制至 conf/ssl.key 下
17. OK!!万事具备了, 启动您的 Apache 吧!! 不放心的话用 apache -t 看一下语法有无错误
启动后先用一般网页(
http://Doma...ame 或
http://Host.D...Name)开看看应该没问题
18. 再来试试 Port 443 (
http://Domain...:443 或
http://Host.Dom...e:443) 应该会告诉你是一个错误的请求如下
Bad request! Your browser (or proxy) sent a request that this server could not understand.
If you think this is a server error, please contact the webmaster.
Error 400
这时您可以直接使用
https://Doma...ame 或
https://Host.D...Name 来进入 SSL 的网页了(后面呢...自己认证吧!!)
19. 注意喔!!右下角的金钥喔!!
因为您的电脑尚未取得 Server 的认证, 所以检验凭证时, 记得要安装 Server 凭证(server.crt)喔!!
又因为 Server 的认证未经授权单位认可, 所以检验凭证时, 记得要安装 CA 凭证(ca.crt)喔!!
您可以将 ca.crt 与 server.crt 公开给人下载安装以取得拥有属于您自己的实验性网站的认证
20. 认证实际运作可按此参考看看
手打的好酸......噗!!