在NGINX服务器上,我正在使用ssl_client_certificate /path/to/clientcert.pem;
选项来设置受信任的客户端证书。
此clientcert.pem
文件包含两个受信任的客户端证书,一个(A)带有其颁发者的CA证书,另一个(B)没有证书。这样一共三个证书。
当客户端A发出请求时,一切按预期进行,但是当客户端B发出请求时,即使TLS握手成功,NGINX仍以400和html消息响应,包括“ SSL证书错误”。 $ssl_client_verify
变量保存"FAILED:unable to verify the first certificate"
。
是否有一种方法可以使NGINX在不知道其发行者的情况下接受B的客户端证书?还是我误会了这里的问题?
编辑:@Seifeddine Besbes的评论,要求openssl s_client
输出。
相关部分是
---
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