Windows 下安装Apache2.0.59 SSL的艰苦历程

上星期五,由于测试需要, PM 要我们安装带 SSL Apache 服务器,东西都给我们了,给了一个文档。
Step by step 的按照那个 Guide 做,发现一个到生成服务器公钥时出错,懵了
看那个文档好像就是从网上 copy 的,一搜索,果然被我猜中了, 。再追根溯源,发现就是参考的 Windows 下安裝設定 Apache2 + PHP5 + mod_ssl 这篇文章,好,就按这个来。
我整理如下:
--------------------------------------
预先工作  - 需要下载的文件:
安装需要东西,下面是我们要用到的,先下载下来:
3.      openssl.cnf
安装相关东东:
1 .直接安装 apache_2.0.59-win32-x86-no_ssl.msi ,用官方的这份安装文件的话,可以用 monitor 帮 你装成 Windows 服务,这样就能设定开机时自动启动 web 服务器了。安装时会要你填入相关的讯息,建议 SeverName IP 地址 。同时也留意一下你把 apache 装在哪个目录下(比方说 C:Apache2 ,安装文件会生成 Apache2 文件夹,假如你安装在 C: 下)。
2 .如果你的 apache 服务已经启动(可以看右下角的工具列图示),请先将它 stop ,然后找个地方解开 2 ,我们需要把解开后的 bin 目录下的 Apache.exe ssleay32.dll libeay32.dll openssl.exe 放到你 apache 安装目录下的 bin 目录里,替换掉原本的 apache.exe 。解压出来然后再将 2 解开后的 conf 目录下的 ssl.conf 也复制一份到你自己 apache 目录(如 C:Apache2 )下的 conf 目录里。
3.还有 modules 目录下的 mod_ssl.so 也要放到 apache 目录下的 modules 目录里。Httpd.conf文件中找到#LoadModule ssl_module modules/mod_ssl.so,把前面的#号删除。
配置ssl.conf文件:
1. ssl.conf 里找到下列这段叙述,然后把它改成你的设定:(用文本编辑器,如记事本打开)
# General setup for the virtual host
DocumentRoot " 你的网页根目录,可以找 httpd.conf 文件下的 DocumentRoot"
ServerName 你的 domain name 或者直接用 IP 地址 :443
ServerAdmin 你的 Email 地址,我就随便填的,只是自己用
ErrorLog logs/error_log
TransferLog logs/access_log
2. ssl.conf 文件里是不是有这几行:
SSLCertificateFile conf/ssl.crt/server.crt
SSLCertificateKeyFile conf/ssl.key/server.key
SSLCertificateChainFile conf/ssl.crt/ca.crt
3.我自己是把 ssl.conf 里的 <ifdefine SSL> </ifdefine> 注解掉,这就要看你要不要再去 httpd.conf define SSL 了,嫌麻烦就注解掉
 
生成证书文件:
我们要产生 SSL 连接( HTTPS )时所需要加密的 key 及身份验证用的 CA
切换至 Apache2 bin 目录下 , openssl.cnf 置其中。把 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
还有别忘了把这个文件的 x509extensions 这一行在开头加上 # 把它注解掉 那篇 Guide 就是这错了,害我生成 Server public key 失败 ...
然后在 Apache2 bin 目录下建立一个 ssl 资料夹,在里面新增两个文件: index.txt serial index.txt 让它保留空白即可,然后 serial 文件输入 01
 
然後在命令行模式下(「开始」 -> 「运行」输入 cmd ,然后用 cd 指令切到 Apache2 bin )依次输入下列命令:
1. 生成 CA private key ,它会要求你输入密码,记住了,以后还要用到。
openssl genrsa -des3 -out ssl/ca.key 1024
2. 生成 CA require cert ,按照它的说明填入对应资料
openssl req -config openssl.cnf -new -key ssl/ca.key -out ssl/ca.csr
3. 生成 CA public cert.
openssl x509 -days 3650 -req -signkey ssl/ca.key -in ssl/ca.csr -out ssl/ca.crt
4. 生成 Server private key
openssl genrsa -out ssl/server.key 1024
5. 生成 Server require cert ,这里跟上面填入相同的资料
openssl req -config openssl.cnf -new -key ssl/server.key -out ssl/server.csr
6. 生成 Server public key
openssl ca -config openssl.cnf -days 3650 -cert ssl/ca.crt -keyfile ssl/ca.key -in ssl/server.csr -out ssl/server.crt
注意:在上边两步填写资料时, Common Name (eg, your websites domain name) [] 要填的和 httpd.conf 中的一样,否则会出错,在 Apache 的错误日志中发现错误为 证书和服务器名称不匹配 SA server certificate CommonName (CN) `127.0.0.1' does NOT match server name!? )。如果 ServerName 设为 127.0.0.1:80 的话, Common Name (eg, your websites domain name) [] 好像填 localhost 127.0.0.1 都可以。
 
如果沒有错误提示的话,那在你的 ssl 文件夹下应该至少会有 ca.crt server.crt server.key 這三个文件(确认它们不是 0 byte )。
然后把在 Apache 安装目录的 conf 文件夹下建立 ssl.crt ssl.key 文件夹。把 ca.crt server.crt 放到 ssl.crt 目录下 ,而 server.key 放到 ssl.key 目录 下。
 
如果你很顺利到这里,那就可以重新启动 apache 的服务,然后试试看能不能用 https://127.0.0.1 连接到你的网页吧!
作者:truebit
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值