以下是在CentOS上使用Apache2解決SSL證書問題的步驟,涵蓋證書獲取、配置及驗證:
Let’s Encrypt免費證書(推薦)
sudo yum install certbot python3-certbot-apache
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
按提示完成域名驗證,Certbot會自動修改Apache配置文件。自簽名證書(測試環境)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/httpd/private/server.key -out /etc/httpd/certs/server.crt
(替換為實際路徑和域名)編輯SSL配置文件
通常路徑為/etc/httpd/conf.d/ssl.conf
或/etc/apache2/sites-available/default-ssl.conf
,添加以下內容:
<VirtualHost *:443>
ServerName yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/httpd/certs/server.crt # 證書路徑
SSLCertificateKeyFile /etc/httpd/private/server.key # 私鑰路徑
SSLCertificateChainFile /etc/httpd/certs/ca-bundle.crt # 中間證書(如有)
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5
</VirtualHost>
(若使用Let’s Encrypt,Certbot會自動填充證書路徑)
啟用HTTP到HTTPS重定向(可選)
編輯/etc/httpd/conf/httpd.conf
或虛擬主機配置,添加:
<VirtualHost *:80>
ServerName yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
重啟Apache
sudo systemctl restart httpd
驗證配置
https://yourdomain.com
,查看鎖圖標是否顯示。sudo apachectl configtest
sudo certbot renew --dry-run # 測試續訂
sudo certbot renew # 執行續訂
(證書到期前30天自動續訂,無需手動操作)sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
/var/log/httpd/error_log
,定位語法或路徑問題。參考來源: