HTTPS是安全的,对于我而言是无奈,因为小程序的域名必须是https的,phpstudy官方文档关于如何设置https只有一句话,等于没说,后台的https看似简单但是腾讯云这边那三个文件只有一个可以复制文本,其他两个都是证书文件根本不能复制文本进去所以等于这个功能没有,但是phpstudy的社区还是可以找到答案,不同的是他的证书是自己生成的,而我的是在腾讯云上申请的免费版。
1. 申请证书
登陆腾讯云后台:SSL证书管理地址:https://console.cloud.tencent.com/ssl
点击“申请免费证书”后选择“域名型免费版”
填写相关信息,因为我已经成功配置所以这里就不再次申请了,关于证书的申请和配置,其实腾讯的官方文档讲得很好,问题在于他们的文档是针对直接在服务器上安装Apache等服务的方式进行配置的,而我们现在的环境是Linux版的phpstudy,linux版的phpstudy使用的是docker技术,Apache是运行在docker上的,所以腾讯官方的配置就不太实用了。
腾讯云官方SSL文档:https://cloud.tencent.com/document/product/400/4143
免费证书申请提交以后会有一个审核,通过之后我们就能在管理页看见证书了
然后我们要下载证书,是一个压缩文件,里面有4种服务的证书文件
我使用的是Apache,打开Apache的文件夹里面有3个文件
2. 上传证书
我们需要知道phpstudy安装在哪个目录,配置文件的访问路径有限,你如果把证书文件放到其他目录可能就读取不到。
phpstudy被安装在/usr/local
目录,所以三个证书文件放在/usr/local
目录或其子目录都可以,
我把它们放在了这里/usr/local/phpstudy/soft/apache/httpd-2.4.39/conf/
3.修改配置文件
- 修改
/usr/local/phpstudy/vhost/apache/ports.conf
文件:
Listen 80
Listen 443
- 修改
/usr/local/phpstudy/vhost/apache/192.168.1.8_80.conf
文件,在文件最后添加
<VirtualHost *:443>
DocumentRoot "/www/admin/localhost_80/wwwroot/"
ServerName "19.27.19.4" #这里换成你服务器的地址
#############301重定向
#RedirectMatch permanent ^/(.*)
#############强制SSL
#RewriteEngine on
#RewriteCond %{HTTPS} !=on
#RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL
SSLCertificateFile /usr/local/phpstudy/soft/apache/httpd-2.4.39/conf/2_www.mea.cn.crt
SSLCertificateKeyFile /usr/local/phpstudy/soft/apache/httpd-2.4.39/conf/3_www.mea.cn.key
SSLCACertificateFile /usr/local/phpstudy/soft/apache/httpd-2.4.39/conf/1_root_bundle.crt
#############防盗链
#############流量限制
#######防火墙配置
#############日志
CustomLog "|/usr/local/phpstudy/system/module/rotatelogs /www/admin/localhost_80/log/apache_access_%Y-%m-%d.log 86400 480" combined_with_cookie
ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
ErrorDocument 502 /error/502.html
ErrorDocument 503 /error/503.html
##############处理PHP
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:7380"
</FilesMatch>
<Directory "/www/admin/localhost_80/wwwroot/">
DirectoryIndex index.php index.html error/index.html
AllowOverride All
</Directory>
</VirtualHost>
其实就是这个简单,其中证书文件的使用就是这几句配置
SSLCertificateFile /usr/local/phpstudy/soft/apache/httpd-2.4.39/conf/2_www.mea.cn.crt
SSLCertificateKeyFile /usr/local/phpstudy/soft/apache/httpd-2.4.39/conf/3_www.mea.cn.key
SSLCACertificateFile /usr/local/phpstudy/soft/apache/httpd-2.4.39/conf/1_root_bundle.crt
参考文档:
- https://blog.csdn.net/j_z_c_q/article/details/105380804
- https://blog.csdn.net/weixin_42255190/article/details/99290039
- https://cloud.tencent.com/document/product/400/4143