如何將自己的網站從 HTTP 的轉換為 HTTPS 的

gongchengship發表於2024-07-04

將網站從 HTTP 轉換為 HTTPS 能夠加密資料傳輸,還能提高搜尋引擎排名

1. 獲取 SSL/TLS 證書

首先,你需要獲得一個 SSL/TLS 證書。你可以從以下來源之一獲取證書:

  • 免費證書

  • Let's Encrypt:一個免費的、自動化的證書頒發機構(CA),廣泛使用且受信任。

  • 付費證書

  • 著名的 CA:如 DigiCert、GlobalSign、Comodo、Symantec 等提供的付費證書,通常提供更高的信任級別和支援。

2. 安裝證書

安裝證書的步驟因伺服器和託管服務提供商的不同而有所不同。以下是一些常見的 Web 伺服器的安裝步驟:

2.1. Apache

  1. 安裝 Certbot(用於 Let's Encrypt)
sudo apt update
sudo apt install certbot python3-certbot-apache
  1. 獲取並安裝證書
sudo certbot --apache
  1. 配置 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>
  1. 重啟 Apache
sudo systemctl restart apache2

2.2. Nginx

  1. 安裝 Certbot(用於 Let's Encrypt)
sudo apt update
sudo apt install certbot python3-certbot-nginx
  1. 獲取並安裝證書
sudo certbot --nginx
  1. 配置 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;
}
}
  1. 重啟 Nginx
sudo systemctl restart nginx

3. 更新網站配置

確保網站的所有 URL 和資源(如圖片、指令碼、樣式表等)使用 HTTPS 協議。如果存在混合內容(即 HTTP 和 HTTPS 混合使用),瀏覽器可能會顯示警告或阻止載入不安全的資源。

4. 更新網站連結

  1. 內部連結:更新所有內部連結以使用 HTTPS。
  2. 重定向 HTTP 到 HTTPS:確保所有 HTTP 請求都重定向到 HTTPS。前面的 Apache 和 Nginx 配置示例中已經包括了這一點。

5. 檢查並測試

  1. 瀏覽器測試:在多個瀏覽器中訪問你的網站,確保所有內容都透過 HTTPS 載入,並且沒有混合內容警告。
  2. SSL Labs:使用 SSL Labs 檢查你的 SSL 配置,確保其安全性和相容性。
  3. 搜尋引擎更新:更新 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,確保資料傳輸的安全性和完整性。

相關文章