在Debian系統上使用Nginx配置自動續期SSL證書,通常會結合Let’s Encrypt的Certbot工具來實現。Certbot提供了自動續期功能,并且可以與Nginx無縫集成。以下是詳細的步驟:
首先,確保你已經安裝了Nginx和Certbot。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install nginx certbot python3-certbot-nginx
使用Certbot獲取SSL證書。假設你的域名是example.com,可以使用以下命令:
sudo certbot --nginx -d example.com -d www.example.com
執行這個命令時,Certbot會自動配置Nginx,并生成SSL證書和私鑰文件。它會創建一個符號鏈接,指向這些文件。
Certbot會自動設置一個cron任務來定期檢查并續期證書。你可以手動運行以下命令來測試續期過程:
sudo certbot renew --dry-run
如果沒有錯誤,說明配置正確。Certbot會在證書到期前30天自動嘗試續期。
如果你需要手動觸發續期,可以使用以下命令:
sudo certbot renew
確保Nginx配置文件中正確引用了SSL證書和私鑰文件。通常,Certbot會自動修改Nginx配置文件,但你可以檢查并確認配置是否正確。
打開Nginx配置文件(通常位于/etc/nginx/sites-available/default),確保有以下內容:
server {
listen 80;
server_name example.com www.example.com;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
root /var/www/html;
index index.html index.htm;
}
}
在修改Nginx配置文件后,重新加載Nginx以應用更改:
sudo systemctl reload nginx
最后,確保SSL證書正確安裝并生效。你可以使用以下命令檢查證書信息:
sudo openssl s_client -connect example.com:443 -servername example.com
如果一切正常,你應該能看到SSL證書的詳細信息。
通過以上步驟,你可以在Debian系統上使用Nginx和Certbot配置自動續期SSL證書。