在Debian上配置Nginx SSL证书撤销列表(CRL)涉及几个步骤。以下是一个详细的指南:
1. 生成私钥和证书
首先,你需要为你的域名生成一个私钥和自签名证书。如果你还没有这样做,可以使用以下命令:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
按照提示输入相关信息。
2. 创建CRL文件
接下来,创建一个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
3. 更新Nginx配置
编辑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; # 其他配置... }
4. 重新加载Nginx
保存并关闭配置文件后,重新加载Nginx以应用更改:
sudo systemctl reload nginx
5. 验证CRL配置
你可以使用以下命令验证CRL是否正确配置:
openssl crl -in /etc/ssl/crl/nginx-crl.pem -text -noout
这将显示CRL文件的详细信息,包括已撤销的证书序列号。
6. 自动更新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证书撤销列表。