Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NGINX ssl“客户端”证书;失败:无法验证第一个证书";_Ssl_Nginx - Fatal编程技术网

NGINX ssl“客户端”证书;失败:无法验证第一个证书";

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变量包含“失败:无法验证

在我的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
变量包含
“失败:无法验证第一个证书”

有没有办法让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是受信任的。