在Ubuntu上配置Apache SSL涉及幾個步驟,包括安裝必要的軟件包、生成SSL證書和密鑰、配置Apache以使用這些證書。以下是一個詳細的指南:
首先,確保你的系統是最新的:
sudo apt update
sudo apt upgrade
安裝Apache HTTP服務器和SSL模塊:
sudo apt install apache2
sudo apt install apache2-mod_ssl
你可以選擇使用自簽名證書或從證書頒發機構(CA)獲取證書。這里我們使用Let’s Encrypt來生成免費的SSL證書。
Certbot是一個自動化的工具,用于獲取和續訂Let’s Encrypt證書。
sudo apt install certbot python3-certbot-apache
運行Certbot來獲取證書:
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
將yourdomain.com
和www.yourdomain.com
替換為你的實際域名。
Certbot會提示你輸入電子郵件地址、同意服務條款,并選擇一個目錄來存儲證書文件。完成后,它會自動配置Apache以使用這些證書。
Certbot會自動修改Apache配置文件以啟用SSL。你可以通過編輯/etc/apache2/sites-available/yourdomain.com-le-ssl.conf
文件來進一步自定義配置。
示例配置:
<VirtualHost *:443>
ServerAdmin webmaster@yourdomain.com
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
確保將ServerName
和ServerAlias
替換為你的實際域名,并更新證書文件路徑。
啟用新創建的SSL站點配置:
sudo a2ensite yourdomain.com-le-ssl.conf
重啟Apache以應用更改:
sudo systemctl restart apache2
打開瀏覽器并訪問https://yourdomain.com
,你應該看到一個安全的連接(通常顯示一個綠色的鎖圖標)。
Let’s Encrypt證書每90天過期一次。Certbot會自動嘗試續訂證書,但你也可以手動運行以下命令來測試續訂過程:
sudo certbot renew --dry-run
如果一切正常,你可以設置一個cron作業來自動續訂證書:
sudo crontab -e
添加以下行:
0 0,12 * * * certbot renew --post-hook "systemctl reload apache2"
這樣,Certbot會在每天午夜和中午檢查并續訂證書,如果證書被成功續訂,它會重新加載Apache服務。
通過以上步驟,你就可以在Ubuntu上成功配置Apache SSL。