將網站從 HTTP 轉換為 HTTPS 能夠加密資料傳輸,還能提高搜尋引擎排名
1. 獲取 SSL/TLS 證書
首先,你需要獲得一個 SSL/TLS 證書。你可以從以下來源之一獲取證書:
-
免費證書:
-
Let's Encrypt:一個免費的、自動化的證書頒發機構(CA),廣泛使用且受信任。
-
付費證書:
-
著名的 CA:如 DigiCert、GlobalSign、Comodo、Symantec 等提供的付費證書,通常提供更高的信任級別和支援。
2. 安裝證書
安裝證書的步驟因伺服器和託管服務提供商的不同而有所不同。以下是一些常見的 Web 伺服器的安裝步驟:
2.1. Apache
- 安裝 Certbot(用於 Let's Encrypt):
sudo apt update
sudo apt install certbot python3-certbot-apache
- 獲取並安裝證書:
sudo certbot --apache
- 配置 Apache:
Certbot 通常會自動配置 Apache。如果需要手動配置,編輯 Apache 配置檔案:
sudo nano /etc/apache2/sites-available/your_site.conf
確保包含以下指令:
<VirtualHost *:80>
ServerName your_domain
Redirect permanent / https://your_domain/
</VirtualHost>
<VirtualHost *:443>
ServerName your_domain
DocumentRoot /var/www/your_site
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/your_domain/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/your_domain/privkey.pem
</VirtualHost>
- 重啟 Apache:
sudo systemctl restart apache2
2.2. Nginx
- 安裝 Certbot(用於 Let's Encrypt):
sudo apt update
sudo apt install certbot python3-certbot-nginx
- 獲取並安裝證書:
sudo certbot --nginx
- 配置 Nginx:
Certbot 通常會自動配置 Nginx。如果需要手動配置,編輯 Nginx 配置檔案:
sudo nano /etc/nginx/sites-available/your_site
確保包含以下指令:
server {
listen 80;
server_name your_domain;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name your_domain;
ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
location / {
root /var/www/your_site;
index index.html;
}
}
- 重啟 Nginx:
sudo systemctl restart nginx
3. 更新網站配置
確保網站的所有 URL 和資源(如圖片、指令碼、樣式表等)使用 HTTPS 協議。如果存在混合內容(即 HTTP 和 HTTPS 混合使用),瀏覽器可能會顯示警告或阻止載入不安全的資源。
4. 更新網站連結
- 內部連結:更新所有內部連結以使用 HTTPS。
- 重定向 HTTP 到 HTTPS:確保所有 HTTP 請求都重定向到 HTTPS。前面的 Apache 和 Nginx 配置示例中已經包括了這一點。
5. 檢查並測試
- 瀏覽器測試:在多個瀏覽器中訪問你的網站,確保所有內容都透過 HTTPS 載入,並且沒有混合內容警告。
- SSL Labs:使用 SSL Labs 檢查你的 SSL 配置,確保其安全性和相容性。
- 搜尋引擎更新:更新 Google Search Console 和 Bing Webmaster Tools,通知它們你的網站現在使用 HTTPS。
6. 自動續期(針對 Let's Encrypt)
Let's Encrypt 證書有效期為 90 天,因此需要自動續期。安裝 Certbot 時,通常會設定一個 cron 任務或 systemd timer 來自動續期。
檢查 Certbot 續期任務:
sudo certbot renew --dry-run
如果以上命令執行沒有問題,Certbot 已經配置好自動續期。
透過這些步驟,就可以將網站從 HTTP 轉換為 HTTPS,確保資料傳輸的安全性和完整性。