一、申请SSL证书
利用阿里云、腾讯云免费SSL,期限一年;或者搞一个Let’s Encrypt。
二、上传SSL证书
将Apache文件夹中的证书上传到服务器,比如是C:\ssl\
三、配置httpd.conf
打开apache下的httpd.conf文件 找到以下语句:
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf
去掉语句前的#号注释(路径是不带original的)
四、配置httpd-ssl.conf
Listen 443
SSLSessionCache "shmcb:${SRVROOT}/logs/ssl_scache(512000)"
<VirtualHost _default_:443>
DocumentRoot "C:/wamp64/www"
ServerName kissbaofish.com:443
ServerAdmin admin@example.com
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"
SSLEngine on
#证书具体路径
SSLCertificateFile "C:/ssl/2_kissbaofish.cn.crt"
SSLCertificateKeyFile "C:/ssl/3_kissbaofish.cn.key"
SSLCertificateChainFile "C:/ssl/1_root_bundle.crt"
五、重启Apache
重新启动Apache,如果没有变成绿色,请在Apache的bin目录下打开cmd,运行如下命令 httpd -t;看看报什么错
我的是
“Syntax error on line 76 of C:/apache/conf/extra/httpd-ssl.conf:SSLSessionCache: ‘shmcb’ session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).”
解决办法:
打开httpd.conf,找到 LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
,把前面的注释去掉。
重启后,显示Syntax OK。
大功告成
六、HTTP 自动跳转 HTTPS
可以通过配置服务器,让其自动将 HTTP 的请求重定向到 HTTPS
配置 httpd.conf
确认该配置文件是否存在LoadModule rewrite_module modules/mod_rewrite.so
去掉前面的注释符号(#)号。
在 httpd.conf 配置文件中添加如下内容:
<Directory "${INSTALL_DIR}/www/">
# 新增
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</Directory>