用HTTPS更高大上,让WampServer开启SSL

如今的互联网时代就是个看脸的时代,颜值就是一切!

不信?看看那些直播带货的就知道了,颜值与出货量绝对成正比!

而相对于HTTP来说,HTTPS绝对算得上是高颜值的帅哥,即安全又有范,拉出去逛街都倍儿有面!

在互联网时代背景下,HTTPS早已是流行标配,只要你是正规网站,那妥妥地支持HTTPS。

WampServer作为常用的Windows下开发调试PHP的神器,自然也是支持HTTPS的,只是默认并未开启。

你说啥?还用着HTTP呢?出门还好意思和人打招呼吗?

那位说,我用HTTP也好使着呢,没必要啊。

好吧,其实吧有很多情况,还是要用到HTTPS的。

比如新版的 webrtc,它就看上了HTTPS,非HTTPS不嫁啊!

HTTPS这么牛,以后早晚都是它了,那赶紧一起来看看WampServer开启SSL的正确姿势吧!


开发测试环境概要:

WampServer:3.2.2

Apache: 2.4.39

PHP: 7.3.5


Step 1 - 确认以下文件是否存在并确保正确

  • a. [Apache安装目录]/modules/mod_ssl.so
  • b. [Apache安装目录]/bin/openssl.exe, libeay32.dll, ssleay32.dll
  • c. [Apache安装目录]/conf/openssl.cnf


Step 2 - 修改配置文件 httpd.conf (用于载入 ssl 模块和其配置文件)

# 去掉下面行首的#号
LoadModule ssl_module modules/mod_ssl.so 
Include conf/extra/httpd-ssl.conf
 


Step 3 - 生成自签名证书

  1. 请求认证文件生成

    在命令行下进入Apache安装目录下\bin文件夹,输入命令:

    C:\wamp\apache\bin> openssl req -new -out server.csr -config ../conf/openssl.cnf
     
  2. 生成私钥

    openssl rsa -in privkey.pem -out server.key
     

    然后要求输入之前 privkey.pem 的密码(keynes)。

  3. 创建证书

    openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
     
  4. 移动文件

    将 \bin 下面的 server.csr、server.crt、server.key 移动到 [Apache安装目录] \conf\ssl 文件夹中。


Step 4 - 修改httpd-ssl.conf

打开 [Apache安装目录]\conf\extra\httpd-ssl.conf 文件,设置 SSLCertificateFileSSLCertificateKeyFile 语句对应的路径。

SSLCertificateFile "C:/wamp/bin/apache/apache2.4.9/conf/ssl/server.crt"
SSLCertificateKeyFile "C:/wamp/bin/apache/apache2.4.9/conf/ssl/server.key"
 


一般来说,完成以上四步可能还无法成功启动SSL。

我在排查问题时总结以下一些方法,你可以参考一下下:

排查方法:通过查看 Apache 安装目录下的 logs 文件夹内的 access.log 和 error.log 中的记录解决问题


可能会遇到的坑:

1、如果要使用shmcb

# 应该在 httpd-ssl.conf 文件中开启模块
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
# 同时在 httpd-ssl.conf 文件中写明参数
SSLSessionCache        "shmcb:C:/wamp/bin/apache/apache2.4.39/logs/ssl_scache(512000)"
 

2、目录要指向正确

# 在 httpd-ssl.conf 文件中
DocumentRoot "C:/wamp/www"
ServerName www.example.com:443
ServerAdmin 该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。
ErrorLog "C:/wamp/bin/apache/apache2.4.39/logs/error.log"
TransferLog "C:/wamp/bin/apache/apache2.4.39/logs/access.log"

CustomLog "C:/wamp/bin/apache/apache2.4.39/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
 

3、外网访问WampServer的权限问题

# 在 httpd.conf 文件中
# 或 <Directory "${INSTALL_DIR}/www/"> 等目录中确认权限,添加以下允许权限
<Directory />
  <RequireAll>
      Require ip x.x.x.x/24
  </RequireAll>
</Directory>
 


好了,调试一番后如果你能顺利地在浏览器中打开 https:// 开头的页面,那么恭喜你,成功啦!

不过,注意到网址前面有把小锁了吗?

它带有感叹号,说明我们用的是自签名证书。

这个证书不能被浏览器的权威证书机构承认,只能自己用用,其实问题不大,只是有些警告而已。

嗯,时间不早了,就介绍到这里,希望对你有所帮助,我们下期再见!

Wechat @网管小贾 | www.sysadm.cc


提交评论

安全码
刷新

© 2020-present 网管小贾 | 微信公众号 @网管小贾
许可协议:CC-BY-NC 4.0 | 转载文章请注明作者出处及相关链接