我正在使用 Nginx 创建安全连接;当我撤销客户端证书时,我也可以通过 https 连接到 Nginx,我知道我应该配置 ssl_crl 指令,但是我想使用 OCSP 来验证客户端证书,我该怎么办?我发现 Nginx 使用 OpenSSL 库建立 ssl 连接,我应该对 openssl.cnf 文件做些什么吗?
问问题
5638 次
4 回答
7
具有 OCSP 功能的客户端证书验证已添加到 nginx 1.19.0+。例如:
ssl_verify_client on;
ssl_ocsp on;
resolver 192.0.2.1;
ssl_ocsp启用客户端证书链的 OCSP 验证。
ssl_ocsp 叶;仅启用客户端证书验证。默认情况下ssl_ocsp设置为off。
ssl_verify_client 指令应设置为on或可选,以使 OCSP 验证工作
解析器应指定以解析 OCSP 响应程序主机名。
于 2020-05-26T19:31:24.433 回答
0
更新
Nginx 在 2020 年 5 月 26 日发布的版本 1.19.0 中添加了对使用 OCSP 进行客户端证书验证的支持。请参阅ssl_ocsp和相关指令。
原始答案
Nginx 不支持客户端证书的 OCSP 验证。验证客户端证书的唯一选择是使用 CRL,更新它们并重新加载 Nginx 以应用更改。
在这个线程中,一位领先的 Nginx 开发人员证实了这一点,并表示截至 2014 年没有人在研究它: https ://forum.nginx.org/read.php?2,238506,245962
于 2017-06-25T00:36:38.880 回答
-1
先决条件:
- 运行配置了 OCSP 的 pki
NginX 服务器配置
# 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;
于 2019-08-29T16:55:04.417 回答
-6
这只是代码在服务器块中的外观示例:
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 装订,以确保您的 SSL 正常工作:
于 2016-01-31T15:20:21.820 回答