溫馨提示×

ubuntu nginx ssl證書如何更新

小樊
39
2025-10-06 11:21:55
欄目: 云計算

Ubuntu Nginx SSL證書更新指南(以Let’s Encrypt為例)

一、自動續期(推薦方式)

Let’s Encrypt證書有效期為90天,Certbot(Let’s Encrypt官方工具)會自動配置定時任務處理續期,無需手動干預。若需確認或調整自動續期設置,可按以下步驟操作:

1. 測試自動續期流程

運行以下命令模擬續期過程,確保配置正確(無報錯則表示正常):

sudo certbot renew --dry-run

2. 查看自動續期定時任務

Certbot默認會創建系統級定時任務(通常位于/etc/cron.d/certbot或通過systemd timer管理)??赏ㄟ^以下命令查看定時任務詳情:

cat /etc/cron.d/certbot  # 查看cron任務
systemctl list-timers | grep certbot  # 查看systemd定時任務

默認情況下,Certbot會每小時檢查一次證書有效期,若證書剩余有效期不足30天,則自動觸發續期。

3. 手動觸發續期(可選)

若需立即續期(如證書即將過期),可直接運行:

sudo certbot renew

續期完成后,Certbot會自動重新加載Nginx配置(無需手動執行systemctl reload nginx)。

二、手動更新(非自動場景)

若證書未通過Certbot管理(如自行上傳證書),需手動替換證書文件并更新Nginx配置:

1. 準備新證書文件

從證書頒發機構(CA)獲取新證書(通常為.crt/.pem格式的主證書和.key格式的私鑰),并上傳至服務器安全目錄(如/etc/nginx/ssl/):

sudo scp new_cert.crt new_private.key user@your_server:/etc/nginx/ssl/

2. 備份舊證書

替換前務必備份舊證書及私鑰(避免操作失誤導致服務中斷):

sudo cp /etc/nginx/ssl/old_cert.crt /etc/nginx/ssl/old_cert.crt.bak
sudo cp /etc/nginx/ssl/old_private.key /etc/nginx/ssl/old_private.key.bak

3. 替換證書文件

將新證書文件移動至Nginx配置指定的路徑(如/etc/nginx/ssl/yourdomain.com.crt/etc/nginx/ssl/yourdomain.com.key):

sudo mv /etc/nginx/ssl/new_cert.crt /etc/nginx/ssl/yourdomain.com.crt
sudo mv /etc/nginx/ssl/new_private.key /etc/nginx/ssl/yourdomain.com.key

4. 修改Nginx配置

編輯Nginx站點配置文件(通常位于/etc/nginx/sites-available/yourdomain.com/etc/nginx/conf.d/yourdomain.conf),更新ssl_certificate(主證書路徑)和ssl_certificate_key(私鑰路徑):

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;
    ssl_certificate /etc/nginx/ssl/yourdomain.com.crt;  # 新證書路徑
    ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key;  # 新私鑰路徑
    # 其他SSL配置(如協議、加密套件)保持不變
    include /etc/nginx/options-ssl-nginx.conf;
    ssl_dhparam /etc/nginx/ssl-dhparams.pem;
    # ...
}

5. 檢查配置語法

運行以下命令驗證Nginx配置是否正確(無error則表示通過):

sudo nginx -t

6. 重啟Nginx服務

若配置測試通過,平滑重啟Nginx以應用新證書(避免服務中斷):

sudo systemctl reload nginx

三、注意事項

  1. 證書權限:確保證書文件權限正確,私鑰文件需設置為600(僅root可讀),主證書文件設置為644
    sudo chmod 600 /etc/nginx/ssl/*.key
    sudo chmod 644 /etc/nginx/ssl/*.crt
    sudo chown root:root /etc/nginx/ssl/*.key
    
  2. 證書鏈完整性:若證書缺少中間證書,需將CA提供的中間證書合并到主證書文件中(如cat your_cert.crt intermediate.crt > fullchain.pem),并在Nginx配置中引用fullchain.pem。
  3. 回滾準備:若新證書導致問題(如瀏覽器報錯),立即恢復備份的舊證書并重啟Nginx:
    sudo cp /etc/nginx/ssl/old_cert.crt.bak /etc/nginx/ssl/yourdomain.com.crt
    sudo cp /etc/nginx/ssl/old_private.key.bak /etc/nginx/ssl/yourdomain.com.key
    sudo systemctl reload nginx
    

通過以上步驟,可完成Ubuntu Nginx SSL證書的更新(自動/手動),確保網站始終保持安全的HTTPS連接。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女