win+apache+php的环境下做虚拟主机的https。
1、https用的是443端口,确定防火墙已经开放443了。
2、http.conf要加载以下模块:
#这两个是用来存放SSLSessionCache要用到的,如果不设置,日志会有warning: LoadModule socache_dbm_module modules/mod_socache_dbm.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so #这个不用废话了 LoadModule ssl_module modules/mod_ssl.so #最后,把ssl的配置包含进来: Include "D:/apache2/conf/extra/httpd-ssl.conf"
3、http-ssl.conf配置:
Listen 443 SSLSessionCacheTimeout 300 SSLProtocol all -SSLv2 -SSLv3 SSLSessionCache "dbm:D:/Apache2/logs/ssl_scache" <VirtualHost *:443> ServerAdmin admin@wxbo.cn DocumentRoot "D:/www/wxbo.cn" ServerName wxbo.cn:443 ServerAlias www.wxbo.cn ErrorLog logs/wxbo.cn-error.log CustomLog logs/wxbo.cn-access-%Y%m%d.log comonvhost SSLEngine on SSLCertificateChainFile "D:/crt/www.wxbo.cn/1_root_bundle.crt" #根证书 SSLCertificateFile "D:/crt/www.wxbo.cn/2_www.wxbo.cn.crt" #证书 SSLCertificateKeyFile "D:/crt/www.wxbo.cn/3_www.wxbo.cn.key" #key <Directory "D:/www/wxbo.cn"> Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
4、.htaccess添加两行,把所有非http访问,强制跳转到https:
RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
5、设置好了以后,记得重启apache服务。