在Debian上配置Nginx SSL證書撤銷列表(CRL)涉及幾個步驟。以下是一個詳細的指南:
首先,你需要為你的域名生成一個私鑰和自簽名證書。如果你還沒有這樣做,可以使用以下命令:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
按照提示輸入相關信息。
接下來,創建一個CRL文件并添加已撤銷的證書序列號。你可以使用以下命令:
sudo touch /etc/ssl/crl/nginx-crl.pem
sudo openssl ca -config /etc/ssl/openssl.cnf -extensions v3_crl -days 30 -notext -md sha256 -in /etc/ssl/certs/nginx-selfsigned.crt -out /etc/ssl/crl/nginx-crl.pem
編輯Nginx配置文件以啟用CRL檢查。假設你的Nginx配置文件位于 /etc/nginx/sites-available/default
,你可以添加以下內容:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
ssl_crl /etc/ssl/crl/nginx-crl.pem;
ssl_trusted_certificate /etc/ssl/certs/nginx-selfsigned.crt;
# 其他配置...
}
保存并關閉配置文件后,重新加載Nginx以應用更改:
sudo systemctl reload nginx
你可以使用以下命令驗證CRL是否正確配置:
openssl crl -in /etc/ssl/crl/nginx-crl.pem -text -noout
這將顯示CRL文件的詳細信息,包括已撤銷的證書序列號。
為了確保證書撤銷列表始終是最新的,你可以設置一個cron作業來定期更新CRL。編輯crontab文件:
sudo crontab -e
添加以下行以每天更新一次CRL:
0 0 * * * /usr/sbin/openssl ca -config /etc/ssl/openssl.cnf -extensions v3_crl -days 30 -notext -md sha256 -in /etc/ssl/certs/nginx-selfsigned.crt -out /etc/ssl/crl/nginx-crl.pem
保存并關閉文件。
通過以上步驟,你就可以在Debian上成功配置Nginx SSL證書撤銷列表。