欢迎莅临阿Q的项目

专业WP商业设计开发销售中心

用OpenSSL制作证书

为未来的电子商务网站打基础,我要学习如何使用SSL来创建安全的站点,一开始是在Windows下做实验,虽然可以获得成功,但是总觉得OpenSSL就是在linux上开发的,于是用虚拟机在CentOS上做,发现方便多了。

应用篇

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服务器。那么就自己做一个算了吧!

如果喜欢本文,请分享给朋友们