win+apache应用网站的SSL(https)功能

应用之前的准备工作:

1. 确认自己安装的apache是否包含https功能,可以切换到apache bin目录, 如果该目录下不存在openssl.exe, 就说明你安装的apache是不包含该功能的, 需要手工安装openssl,或者安装LAMP套件(比如XAMPP)。

2. 当你确认自己的环境是支持openssl的之后, 就需要准备一个域名, 先临时解析到ssl官方指定的ip段(证书申请成功后可以停止解析,这个只为验证使用。)

官方指定的验证ip段:109.123.64.0 – 109.123.127.255

使用之前你可以先ping一下, 如果是存活的, 说明是可用的, 这里我选择的ip是

109.123.127.235

对应domain: honey.liang1234.com (记录类型为A记录)

ping一下honey.liang1234.com, 发现解析生效, 就可以开始进行证书申请工作, 首先打开第一个需要的网址

https://ssl.uk2.net/cgi-bin/certificate-apply.pl

填入honey.liang1234.com, 选择下一步, 会提示让你选择域名whois里的邮箱,这个时候你必须要确保这个邮箱收信和登陆时没有问题的, 确认无误后, 即可进行下一步。

到了下一步后, 会让你填写一些info信息和server端密钥信息, 这个时候, 需要登陆服务器, 切换到apache bin目录, 依次执行

openssl genrsa -out liang1234-privkey.pem 2048
openssl req -new -key liang1234-privkey.pem -out liang1234.csr

执行这个之前, 需要注意的是, server软件平台不要选错了, 如果你是apache, 就要选择apache modssl, 如果是其他平台, 选择对应的平台即可, 确认无误后, 登陆服务器开始依次执行命令

这个时候, 你可能会遇到这样一个错误提示

D:\xampp\apache\bin>openssl genrsa -out liang1234-privkey.pem 2048
WARNING: can’t open config file: c:/openssl-1.0.2j-win32/ssl/openssl.cnf
Generating RSA private key, 2048 bit long modulus
……..+++
………………………+++
e is 65537 (0x10001)

找不到openssl.cnf文件

没关系, 可以这样, 设置一个临时变量

不过,设置之前, 要先找一下自己的cnf文件在哪里

我的是在

D:\xampp\apache\conf

所以就可以这样

set “OPENSSL_CONF=D:\xampp\apache\conf\openssl.cnf”

完成以后再次执行上一条报错的命令, 发现没有错误,成功执行了, 然后我们再执行第二条命令生成密钥

执行第二条命令的时候, 会要求你输入一些信息, 注意, 这里的信息, 尤其是 server name信息, 不要写错。

完成最后一步输入密码的动作以后, 在当前目录下找到domain.csr文件, 文本模式打开, 复制里面的内容, 回到

https://ssl.uk2.net/cgi-bin/certificate-apply.pl

复制到 Paste your CSR into the textarea below: 然后继续submit

成功后, 会提示一个thank you页面, 这个时候, 请你务必记住is number后面的内容, 最好的办法是复制下来放到txt里,然后去打开自己的邮箱(就是你之前whois里的和在生成私钥的时候设置的那个) 打开邮箱后, 你会看到这样的一封邮件

ORDER #51969127 – Domain Control Validation for 你的域名

打开, 再打开里面的click 地址, 填入提供的验证码.

提示thank you后, 就可以关闭当前页面了, 回到

https://ssl.uk2.net/cgi-bin/retrieve-certificate.pl

输入host name (就是你申请证书的域名)
order number (之前保存到text的那个)

然后 submit

就会提示

Retrieve Your SSL CertificateYour certificate is ready to download.Certificate for: honey.liang1234.comValid from: Sat Feb 18 00:00:00 2017Valid until: Sun Feb 18 23:59:59 2018

然后点击下面的download zip 下载证书就可以了。 有时候会不成功, 需要等待两三分钟然后重试。 到此, 证书的申请工作
准备完毕。

打开ZIP包, 你会看到4个crt文件, 先打开域名.crt, 然后再依次打开另外三个, 把内容都复制到域名crt里面, 保存。

这就是个可以使用的证书了。

那么, 怎么使用呢?

首先, 把域名.crt文件上传到服务器, 可以放到conf目录, 也可以放到一个自己记得住的目录, 不要放到htdocs下。
然后继续下一步

打开vhost文件, 进行配置

//SSLlisten端口
DocumentRoot D:/xampp/htdocs/honey.liang1234.com //SSL DOMAIN DOCUMENTROOT
ServerName honey.liang1234.com //SSL DOMAIN
ServerAdmin liang007@outlook.com //DOMAIN EMAIL
ErrorLog “D:/wwwlogs/www.liang1234.com-error_log” //ERROR LOG
CustomLog “D:/wwwlogs/www.liang1234.com-access_log” common //ERROR LOG
SSLEngine on
SSLCertificateFile D:/xampp/apache/bin/honey_liang1234_com.crt //public key
SSLCertificateKeyFile D:/xampp/apache/bin/liang1234-privkey.pem //private key(就是你之前在服务器上生成的, 一般是在apache的bin目录下面)
<Directory “D:/xampp/htdocs/honey.liang1234.com”> // 同上
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.html index.php // 默认首页类型
重启apache, 打开首页,出现绿标, 即配置成功。

如果重启apache无法成功, 又无法知道具体的错误原因, 这里有个小技巧就是, 你可以cmd切换到apache bin 下, 然后执行 httpd -k start 就会直接提示出错误原因。 这就是win下配置ssl的全文, 其实都是相通的。

如果你看着此文照着配置出了linux下的, 说明如何配置ssl你已经掌握了。

此条目发表在php, 安全控制分类目录,贴了, , , , , 标签。将固定链接加入收藏夹。