我想使用客户端证书对每个目录身份验证进行故障排除。我特别想找出服务器发送哪些可接受的客户端证书。
如何调试SSL握手,最好使用cURL?
提前感谢
我已使用此命令对客户端证书协商进行故障排除:
openssl s_client -connect www.test.com:443 -prexit
如果服务器并非总是需要客户端证书,则输出可能包含“可接受的客户端证书CA名称”和来自服务器的CA证书列表,或者可能是“未发送客户端证书CA名称”。
curl -iv https://your.domain.io
如果您不希望使用openssl命令,将为您提供证书和标头输出。
卷曲可能确实有一些显示更多信息的选项,但是对于这种情况,我总是使用openssl s_client
使用-debug
选项,将提供许多有用的信息
也许我应该补充一点,这也适用于非HTTP连接。因此,如果您正在执行“ https”,请尝试以下建议的curl命令。如果您不愿意或想要第二个选项,openssl s_client
可能不错
openssl s_client
代替curl
。-msg
会骗人的!-debug
帮助查看实际在套接字上传播的内容。-status
OCSP装订现在应该是标准的。openssl s_client -connect example.com:443 -tls1_2 -status -msg -debug -CAfile <path to trusted root ca pem> -key <path to client private key pem> -cert <path to client cert pem>
其他有用的开关-tlsextdebug
-prexit
-state