windows下面配置apache+https(利用SSL)服务器



原文地址:http://blog.csdn.net/decajes/article/details/41706739

1、下载带有openSSL的apache安装包,我下载的为apache_2.2.11-win32-x86-openssl-0.9.8i.msi,安装后确认一下bin路径下的openssl.exe,ssleay32.dll和libeay32.dll,无误进行下一步。


2、修改两个配置文件,一个为conf/httpd.conf,另一个为conf/extra/httpd-ssl.conf
(a)修改httpd.conf
为了使apache启动的时候调用ssl的服务,我们需要在配置文件中做一些修改。找到以下两句话并去掉注释,则可以开启apache的时候启动ssl服务:
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-mpm.conf  

(b)修改httpd-ssl.conf

修改的主要是我们生成的证书的路径(我把路径设置为conf下的key目录,把生成的证书放进这个目录,接下来会说怎么生成)

SSLCertificateFile   xxx/conf/key/server.crt   (服务器证书的位置) 
SSLCertificateKeyFile    xxx/conf/key/server.key (服务器私钥的位置) 
SSLCACertificateFile    xxx/key/conf/ca.crt     (CA根证书的位置,进行客户端验证时需要)
#SSLVerifyClient require             (去掉前面的‘#’号,进行客户端验证时需要) 
#SSLVerifyDepth  1
                    (去掉前面的‘#’号,把10改为1,进行客户端验证时需要)
打开httpd-ssl.conf,ctrl+f 搜关键字修改就可以了。

3、生成服务端和客户端的证书

win+R:cmd进入命令行,进去apache安装目录的bin文件夹,执行命令设置一下openssl的配置:
setOPENSSL_CONF=..\conf\openssl.cnf


(a)生成服务端的私匙

执行命令:openssl genrsa -out server.key 1024,在目录bin下生成server.key文件


(b)生成签署申请
执行命令:openssl req -new -out server.csr -key server.key-conf..\conf\openssl.cnf在目录bin下生成server.csr文件,这个过程中要填入一些信息,按照提示要求填就可以了,但是要记住Common Name必须和httpd.conf中的serverName一致,不然apache启动的时候会报错。

(c)生成CA私匙

执行命令:openssl gensa -out ca.key 1024,在目录bin下生成ca.key文件


(d)生成CA生成自签署证书

执行命令:openssl req -new -x509 -days 365 -key ca.key -out ca.crt-conf..\conf\openssl.cnf,在目录bin下生成ca.crt文件


(e)生成CA的服务器签署证书
执行命令:openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key-conf..\conf\openssl.cnf我在这里报错了,按照网上的说法,在当前目录下建立一个demoCA目录,在里面创建一个index.txt空文件,一个名为serial,内容为01的文件,以及一个文件夹newcerts,再执行一次就可以了


4、把当前文件夹中的server.crt,server.key和ca.crt文件复制到步骤2所说的目录conf/key下


5、为了方便,我把httpd.conf和httpd-ssl.conf文件中的ServerName分别改为
127.0.0.1:8080 (有些软件会占用80这个端口,所以改成8080)
127.0.0.1:443


6、重启apache,执行两个命令net stop Apache2.2net start Apache2.2,假如遇到apache无法启动的时候,可以选我的电脑-》管理-》事件检查器-》应用程序日志,打开apache的错误报告,会有提示哪里出错了,一般都可以找到原因。


7、打开IE,输入127.0.0.1:8080出现It works。输入https://127.0.0.1:443的时候会弹出一个验证证书的地方,点击取消发现没能成功。上网查了一下,原来还要生成一个 .pfx 的证书并导入到IE中去。
打开刚才的命令行,执行命令openssl pkcs12 -export -in ca.crt -inkey ca.key -out ca.pfx,在bin下面生成一个ca.pfx的文件,中间有个输入密码的过程,要记住这个密码。打开IE浏览器-》工具-》Internet选项-》内容-》证书,按照提示导入,这里要输入刚才生成 .pfx 过程中输入的密码。导入之后,打开浏览器输入https://127.0.0.1:443出现 It works。搞掂!!!


多谢博主的文章,完全运行通过,做一点小小的补充来完善:

8.在步骤7中生成的.pfx是CA的个人证书,里面有公钥和私钥,一般情况下这个证书是不应该被安装到浏览器中的,安装到浏览器中的证书应该是CA颁发的客户端证书,颁发证书的过程和颁发服务器证书的过程一样,最后生成客户端证书命令如下:

openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx,client.crt和client.key都是用 步骤3 中类似的命令生成的。生成以后安装到浏览其中,就可以了。注意:在生成client.csr文件时,输入的Common Name就是用户自己的名字。




(注:本文为我在搭建环境中的大概过程,纯粹记录一下工作过程,并不深入理解各个点)

版权声明:本文为博主原创文章,未经博主允许不得转载。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值