一、證書準備與上傳
獲取證書文件?
免費證書(如阿里云、Let's Encrypt):下載包含.crt(證書)、.key(私鑰)、chain.crt(證書鏈)的文件包
自簽名證書(測試用):通過OpenSSL生成:
bash
Copy Code
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout server.key -out server.crt
```:ml-citation{ref="2" data="citationList"} ?
證書文件命名建議:避免中文和空格,如domain.crt、domain.key
上傳證書到服務器?
在Apache配置目錄下創建專用文件夾(如C:\phpstudy\Apache\conf\ssl),存放上述三個文件
二、Apache配置調整
啟用SSL模塊?
編輯Apache主配置文件httpd.conf(路徑如C:\phpstudy\Apache\conf\httpd.conf):
apache
Copy Code
LoadModule ssl_module modules/mod_ssl.so ? ? ? ? ?# 取消行首注釋
Include conf/extra/httpd-ssl.conf ? ? ? ? ? ? ? ? # 取消行首注釋
若配置文件無httpd-ssl.conf引用,手動添加Include conf/extra/httpd-ssl.conf
修改SSL虛擬主機配置?
編輯extra/httpd-ssl.conf,設置證書路徑和域名:
apache
Copy Code
<VirtualHost _default_:443>
? ? SSLEngine on
? ? SSLCertificateFile "C:/phpstudy/Apache/conf/ssl/domain.crt"
? ? SSLCertificateKeyFile "C:/phpstudy/Apache/conf/ssl/domain.key"
? ? SSLCertificateChainFile "C:/phpstudy/Apache/conf/ssl/chain.crt"
? ? DocumentRoot "C:/phpstudy/WWW" ? ? ? ? ? ? ? ?# 網站根目錄
? ? ServerName yourdomain.com:443 ? ? ? ? ? ? ? ? # 綁定域名
</VirtualHost>
路徑分隔符使用正斜杠/,避免轉義問題
三、PHP環境與端口設置
啟用OpenSSL擴展?
在phpStudy面板中進入?PHP擴展及設置? → ?php擴展? → 勾選php_openssl
開放443端口?
Windows防火墻放行443端口:
powershell
Copy Code
New-NetFirewallRule -DisplayName "HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
云服務器(如阿里云)還需在安全組中添加443端口入站規則
四、服務重啟與驗證
重啟Apache服務?
在phpStudy面板中依次點擊?停止服務? → ?啟動服務?,確保無報錯
HTTPS訪問測試?
瀏覽器輸入https://yourdomain.com,地址欄顯示鎖標志即為成功
使用命令行驗證證書鏈:
bash
Copy Code
openssl s_client -connect yourdomain.com:443 -showcerts
檢查輸出中證書鏈完整性
異常排查?:
證書路徑錯誤?:檢查httpd-ssl.conf路徑與實際是否一致,確保文件權限可讀
端口沖突?:執行netstat -ano | findstr :443確認端口未被其他進程占用
模塊未加載?:確認mod_ssl.so存在于Apache/modules目錄且配置已啟用
配置流程總結?:
證書獲取(CA或自簽) → 2. 上傳至SSL目錄 → 3. 啟用模塊并修改配置文件 → 4. 開放端口 → 5. 重啟服務并驗證