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