我正在使用Nginx来创建安全连接;当我撤销客户端证书时,我也可以通过https连接到Nginx,我知道我应该配置ssl_crl指令,但我想使用OCSP来验证客户端证书,我该怎么办?我发现Nginx使用OpenSSL库来建立ssl连接,我应该用openssl.cnf文件做些什么吗?
答案 0 :(得分:3)
具有OCSP功能的客户端证书验证已添加到nginx 1.19.0+。
例如:
ssl_verify_client on;
ssl_ocsp on;
resolver 192.0.2.1;
ssl_ocsp 启用客户端证书链的OCSP验证。
ssl_ocsp叶子; 仅启用对客户端证书的验证。默认情况下, ssl_ocsp 设置为关闭。
为使OCSP验证有效,应将 ssl_verify_client指令设置为 on 或可选
应该指定 resolver 来解析OCSP响应程序的主机名。
答案 1 :(得分:1)
# Specifies a file with trusted CA certificates in the PEM format used to verify client certificates and OCSP responses if ssl_stapling is enabled.
# The list of certificates will be sent to clients. If this is not desired, the ssl_trusted_certificate directive can be used.
ssl_client_certificate /etc/nginx/client_certs/ca.crt;
ssl_verify_client on;
ssl_stapling on; #Yes this has to be configured to use OCSP
resolver 192.0.2.1;
答案 2 :(得分:0)
Nginx不支持客户端证书的OCSP验证。验证客户端证书的唯一选择是使用CRL,更新它们并重新加载Nginx以应用更改。
在这个帖子中,一位领先的Nginx开发者证实了这一点,并表示截至2014年没有人在开展这项工作: https://forum.nginx.org/read.php?2,238506,245962
答案 3 :(得分:-5)
这只是代码在服务器块中的样子:
server {
# Listen on port 443
listen 443 default_server;
server_name example.com;
root /path/to/site-content/;
index index.html index.htm;
# Turn on SSL; Specify certificate & keys
ssl on;
ssl_certificate /etc/nginx/ssl/example.com/my_certificate.crt;
ssl_certificate_key /etc/nginx/ssl/example.com/example.key;
# Enable OCSP Stapling, point to certificate chain
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/nginx/ssl/full_chain.pem;
}
确保证书与您的路径匹配,然后保存您的工作。
在重新加载之前测试您的配置......
最后,通过以下任一命令重启或重新加载Nginx:
sudo service nginx reload
或
sudo service nginx restart
最后一步,通过此链接测试您的OCSP Stapling以确保您的SSL正常工作: