我想对使用客户端证书的每个目录身份验证进行故障排除。我特别想找出服务器发送哪些可接受的客户端证书。
如何调试SSL握手,最好使用cURL?
提前致谢
Answers:
我已使用此命令对客户端证书协商进行故障排除:
openssl s_client -connect www.test.com:443 -prexit
如果服务器并不总是需要客户端证书,则输出可能包含“可接受的客户端证书CA名称”和来自服务器的CA证书列表,或者可能包含“未发送客户端证书CA名称”。
-showcerts
,就像是魅力一样-谢谢!
curl可能确实有一些选项可以显示更多信息,但是对于这样的事情,我总是使用 openssl s_client
使用该-debug
选项,可以提供许多有用的信息
也许我应该补充一点,这也适用于非HTTP连接。因此,如果您正在执行“ https”,请尝试以下建议的curl命令。如果您不是或希望第二种选择openssl s_client
可能会很好
curl -V
)编译的,则应尝试使用使用该SSL库的二进制文件来调试连接,例如gnutls-cli -V www .google.com 443
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