在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证书撤销列表。