我已经使用
ssl_client_certificate
在 nginx 上设置了客户端证书身份验证,并且一切正常。
nginx 文档提到了
ssl_client_certificate
:
证书列表将发送给客户。如果这不是 如果需要,可以使用 ssl_trusted_certificate 指令。
我使用此配置的目标是让浏览器过滤掉不相关的客户端证书。
我有以下配置(仅相关部分),但它不起作用。浏览器会显示系统中的每个客户端证书,而不是
path-to-certs-pem
中与 CA 相关的证书。我在 Windows 上尝试过 Firefox、Chrome 和 Edge。
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_cache off;
ssl_verify_client optional;
ssl_client_certificate path-to-certs.pem;
ssl_verify_depth 9;
如果我删除
TLSv1.3
,它就会开始工作,这意味着浏览器仅显示相关证书。我可能需要设置一些额外的东西吗?或者也许有一个我很难找到的已知 nginx 问题?
这篇文章暗示它至少不是本质上的 TLSv1.3 协议问题。
这被证明是一个 WolfSSL 错误,因为我正在使用 WolfSSL 测试 nginx 构建。使用更新的 WolfSSL 重建 nginx 解决了问题。