apache下TLS版本和openssl版本有关。

TLS1.2需要apache>=2.2.23并且OpenSSL至少在 1.0.1版本以上

windows下如果绑定到小程序使用,建议直接使用apache2.4.

以下演示环境为windows2012R2+apache2.2+openssl 0.9.8y

apache开启https需要ssl_module模块,下载apache时候选择ssl版本同时安装apache时候务必选择上。

QQ截图20171106122325_thumb.jpg

编辑apache配置文件httpd.conf

取消ssl_module前的注释,加载ssl模块

同时取消包含httpd-ssl.conf语句前的注释QQ截图20171106125803_thumb.jpgQQ截图20171106125837_thumb.jpg

打开httpd-ssl.conf文件,可以看到起和httpd.conf中监听80端口类似,有监听443端口的指令,同时又一个默认https站点配置文件。

QQ截图20171106125942_thumb.jpg

本演示中,为了方便维护,和以前建立apache下站点一样,把https站点单独放到一个目录包含进来,所以我这里去掉httpd-ssl.conf中默认https的站点配置文件。

QQ截图20171107135610_thumb.jpg

参考默认https主机配置文件,写我们自己的域名虚拟主机站点配置。

如下:

<VirtualHost *:443>

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

#https证书路径设置
SSLCertificateFile “D:/server/Apache2.2/conf/cert/pentester/certificate.crt”
SSLCertificateKeyFile “D:/server/Apache2.2/conf/cert/pentester/private.key”
SSLCertificateChainFile “D:/server/Apache2.2/conf/cert/pentester/ca_bundle.crt”

#虚拟主机路径、域名绑定
DocumentRoot “D:/wwwroot/pentester.cn”
ServerName www.pentester.cn
ServerAlias pentester.cn
ServerAdmin x@pentester.cn

ErrorLog “D:/server/Apache2.2/logs/pentester.cn_error.log”
TransferLog “D:/server/Apache2.2/logs/pentester.cn_access.log”

<FilesMatch “\.(cgi|shtml|phtml|php)$”>
SSLOptions +StdEnvVars
</FilesMatch>

BrowserMatch “MSIE [2-5]” \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog “D:/server/Apache2.2/logs/pentester.cn_ssl_request.log” \
“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”

</VirtualHost>

可以看到和以前文档中apache建立虚拟主机的配置文件基本一样,新增了证书路径设置和SSL协议设置。

SSLCertificateFile为域名ssl证书路径

SSLCertificateKeyFile为域名证书私钥文件路径

SSLCertificateChainFile为域名证书ca证书路径

QQ截图20171107140428_thumb.jpg

确认证书路径、文件名、日志文件路径无误后保存。

和apache2.2下开启80端口多站点(虚拟主机一样),为了能测试多个绑定域名和站点,需要开启虚拟主机。

在httpd.conf中增加NameVirtualHost *:443 开启443端口虚拟主机支持(如果你测试为8443,则改为8443,同时虚拟主机配置文件和这个端口一致,访问时候带上端口号)QQ截图20171107140552_thumb.jpg本例中使用milworm.cn和pentester.cn两个域名,建立两个站点,分别绑定https和对应证书。

访问测试效果如下:

证书成功绑定并分别识别到自己证书。

TLS版本为1.0。QQ截图20171106133018_thumb.jpgQQ截图20171106133151_thumb.jpg

apache绑定SSL证书要点:准备apache所用证书文件(三个);

修改httpd.conf配置,加载SSL模块,包含apache下ssl配置文件;

增加虚拟主机站点,指定监听端口,指定对应证书文件路径;

TLS版本和apache\OpenSSL有关,操作前先确认好对应版本;

windows下操作必要情况下建议使用高版本apache;

配置文件下载:apache2.2-ssl.zip