SSL/TLS 客户端身份验证:如何查看可接受的客户端证书 CA 名称?

SSL/TLS 客户端身份验证:如何查看可接受的客户端证书 CA 名称?

我有一个使用 SSL/TLS 客户端身份验证并要求出示证书的 HTTPS 服务。如何在openssl s_client不出示客户端证书的情况下获取可接受的客户端证书 CA 名称列表?

如果我尝试不使用客户端证书,我会收到以下错误:

4967:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:

答案1

您需要使用以下-prexit选项:

例如

openssl s_client -connect server:8443 -prexit

在程序退出时打印会话信息。即使连接失败,也会始终尝试打印信息。通常,如果连接成功,信息只会打印一次。此选项很有用,因为正在使用的密码可能会重新协商,或者连接可能会失败,因为需要客户端证书或仅在尝试访问某个 URL 后才请求客户端证书。注意:此选项产生的输出并不总是准确的,因为可能从未建立过连接。

答案2

使用以下命令:

openssl s_client -connect website_fqdn:443 -state -nbio 2>&1

输出将包含“可接受的客户端证书 CA 名称”

相关内容