7

我正在使用 Nginx 创建安全连接;当我撤销客户端证书时,我也可以通过 https 连接到 Nginx,我知道我应该配置 ssl_crl 指令,但是我想使用 OCSP 来验证客户端证书,我该怎么办?我发现 Nginx 使用 OpenSSL 库建立 ssl 连接,我应该对 openssl.cnf 文件做些什么吗?

4

4 回答 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设置为offssl_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 正常工作:

OCSP 装订 SSL 检查器

于 2016-01-31T15:20:21.820 回答