服务器设置和教程 · 9 10 月, 2024

在 Ubuntu 18.04 上使用 Let’s Encrypt 來保護 Nginx

在 Ubuntu 18.04 上使用 Let’s Encrypt 來保護 Nginx

隨著網絡安全的重要性日益增加,使用 SSL/TLS 證書來加密網站流量已成為一項必要措施。Let’s Encrypt 是一個免費的證書頒發機構,提供自動化的 SSL 證書申請和更新服務,特別適合於使用 Nginx 的 Ubuntu 18.04 伺服器。本文將詳細介紹如何在 Ubuntu 18.04 上使用 Let’s Encrypt 來保護 Nginx。

前期準備

在開始之前,請確保您已經安裝了 Nginx 並且擁有一個有效的域名。您可以使用以下命令來安裝 Nginx:

sudo apt update
sudo apt install nginx

安裝完成後,您可以通過訪問您的域名來檢查 Nginx 是否正常運行。

安裝 Certbot

Certbot 是一個用於獲取和管理 Let’s Encrypt 證書的工具。您可以使用以下命令來安裝 Certbot:

sudo apt install certbot python3-certbot-nginx

獲取 SSL 證書

安裝完成 Certbot 後,您可以使用以下命令來獲取 SSL 證書:

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

請將 “yourdomain.com” 替換為您的實際域名。執行此命令後,Certbot 將自動配置 Nginx 並獲取 SSL 證書。您將被要求提供電子郵件地址以接收更新通知,並同意 Let’s Encrypt 的服務條款。

自動更新證書

Let’s Encrypt 的證書有效期為 90 天,因此建議設置自動更新。您可以使用以下命令來測試自動更新:

sudo certbot renew --dry-run

如果測試成功,Certbot 將自動更新證書。您可以將此命令添加到 crontab 中,以便定期運行:

sudo crontab -e

然後在文件末尾添加以下行:

0 0 * * * /usr/bin/certbot renew --quiet

配置 Nginx

Certbot 在獲取證書時會自動配置 Nginx,但您仍然可以手動檢查 Nginx 的配置文件。打開您的 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/default

確保以下配置存在:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    location / {
        proxy_pass http://localhost:3000; # 根據您的應用程序調整
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

完成後,檢查 Nginx 配置是否正確:

sudo nginx -t

如果沒有錯誤,重新啟動 Nginx 以應用更改:

sudo systemctl restart nginx

總結

通過以上步驟,您已成功在 Ubuntu 18.04 上使用 Let’s Encrypt 來保護 Nginx。這不僅提高了網站的安全性,還增強了用戶的信任感。對於需要穩定和安全的網站,選擇合適的 VPS 解決方案至關重要。無論是 香港VPS 還是其他地區的 云服务器,確保您的伺服器配置正確,並定期更新證書,以保持網站的安全性。