NGINX ssl“客户端”证书;失败:无法验证第一个证书";
在我的NGINX服务器上,我使用的是ssl\u client\u证书/path/to/clientcert.pem代码>设置受信任客户端证书的选项 此NGINX ssl“客户端”证书;失败:无法验证第一个证书";,ssl,nginx,Ssl,Nginx,在我的NGINX服务器上,我使用的是ssl\u client\u证书/path/to/clientcert.pem设置受信任客户端证书的选项 此clientcert.pem文件包含两个受信任的客户端证书,一个(A)具有其颁发者的CA证书,另一个(B)不具有该证书。总共有三张证书 当客户端A发出are请求时,一切正常,但当客户端B发出请求时,即使TLS握手成功,NGINX也会以400和html消息响应,其中包括“SSL证书错误”。$ssl\u client\u verify变量包含“失败:无法验证
clientcert.pem
文件包含两个受信任的客户端证书,一个(A)具有其颁发者的CA证书,另一个(B)不具有该证书。总共有三张证书
当客户端A发出are请求时,一切正常,但当客户端B发出请求时,即使TLS握手成功,NGINX也会以400和html消息响应,其中包括“SSL证书错误”。$ssl\u client\u verify
变量包含“失败:无法验证第一个证书”
有没有办法让NGINX在不知道其颁发者的情况下接受B的客户端证书?还是我误解了这里的问题
编辑:对@Seifeddine Besbes询问openssl s_客户端的评论的反馈 有关章节如下:
---
Acceptable client certificate CA names
/C=ZA/ST=MyState/L=MyCity/O=Org/OU=OrgUnit/CN=example.com/emailAddress=CA@example.com
/C=ZA/ST=MyState/L=MyCity/O=Org/OU=OrgUnit/CN=clientA.example.com
/C=ZA/ST=MyState/L=MyCity/O=OtherOrg/OU=OrgUnit/CN=clientB.example.com
Server Temp Key: ECDH, X25519, 253 bits
您可以使用openssl s_client-connect example.com:443-servername example.com进行测试吗?然后给我们回复plz@SeifeddineBesbes请查看编辑。不幸的是,
ssl\u客户端\u证书
不是客户端证书列表。它是可用于签署客户端证书的CA列表。我怀疑A起作用是因为CA在场,并不是因为A的客户端证书存在。谢谢您的输出@NieldeWet也许您的链接证书的顺序有问题?@RichardSmith恐怕您是对的-我通过生成另一个客户端证书对其进行了测试,尽管NGINX没有显式信任它,但它被接受,因为CA是受信任的。您可以测试吗使用openssl s_客户端-connect example.com:443-servername example.com?然后给我们回复plz@SeifeddineBesbes请查看编辑。不幸的是,ssl\u客户端\u证书
不是客户端证书列表。它是可用于签署客户端证书的CA列表。我怀疑A起作用是因为CA在场,并不是因为A的客户端证书存在。谢谢您的输出@NieldeWet也许您的链接证书的顺序有问题?@RichardSmith恐怕您是对的-我通过生成另一个客户端证书对其进行了测试,尽管NGINX没有显式信任它,但它被接受,因为CA是受信任的。