应用篇
1、准备工作
将生成的ca.crt、server.crt和server.key复制到d:/website/OpenSSL/
2、设置Apache下的httpd.conf
去掉下面语句的注释,即去掉前面的#
#LoadModule ssl_module modules/mod_ssl.so
去掉下面语句的注释,目的是使用Apache自带的ssl配置文件httpd-ssl.conf进行修改,减少我们的工作量。
#Include conf/extra/httpd-ssl.conf
找到extra\httpd-ssl.conf:
再在conf目录中找到extra文件夹,修改其中的httpd-ssl.conf
#SSLSessionCache "dbm:E:/wamp/bin/apache/apache2.4.2/logs/ssl_scache" #SSLSessionCache "shmcb:E:/wamp/bin/apache/apache2.4.2/logs/ssl_scache(512000)" <VirtualHost 127.0.0.1:443> # General setup for the virtual host DocumentRoot "D:\website\wordpress" ServerName project.com.cn:443 ServerAdmin admin@qqworld.org #ErrorLog "d:/logs/error.log" #TransferLog "d:/logs/access.log" SSLCertificateFile "d:/website/OpenSSL/server.crt" SSLCertificateKeyFile "d:/website/OpenSSL/server.key" SSLCertificateChainFile "d:/website/OpenSSL/server.crt" SSLVerifyClient require #进行客户端验证时需要 SSLVerifyDepth 1 #去掉前面的‘#’号,把10改为1,进行客户端验证时需要 # BrowserMatch "MSIE [2-5]" \ # nokeepalive ssl-unclean-shutdown \ # downgrade-1.0 force-response-1.0 # CustomLog "c:/Apache24/logs/ssl_request.log" \ # "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
重启Apache,将ca.crt在Internet选项中导入受信任的根证书颁发机构中。
存在的问题
这样一来你的网站就可以使用https协议了。不过不要高兴得太早,当你以https协议访问你的网站的时候,浏览器会报错。报错的大致内容就是说你这个证书是不可信任的。为什么不可信任呢?你想想看,假如你的学士学位证不是教育机构办法的,而是你自己颁发给你自己的。那么你的学位证可信吗?当然不可信。同样,你的https证书是你自己做的,也不可信。
要想获得可信的https证书唯一的办法就是到专门提供ssl证书的机构去申请一个。话说申请证书证书,通常是要收费的,而且价格不菲。不过StartSSL提供免费的证书。但是在StartSSL上申请这个证书步骤比较多。如果你只是想和我一样研究https协议以及Web Server服务器。那么就自己做一个算了吧!