有没有办法在浏览器中或通过某些工具查看请求中向服务器发送的 SSL 证书(客户端身份验证)?
问问题
774 次
2 回答
1
我会从 Burp Suite(免费版)之类的东西开始。这是一个非常好的代理......很多事情。
于 2013-06-21T21:24:06.143 回答
1
如果您的服务器在初始握手期间协商客户端证书(没有重新协商),您应该能够使用 Wireshark 看到它:您应该看到一条Certificate
来自客户端的消息(而不是来自服务器的消息),在Certificate Request
发送的消息之后服务器。
如果使用重新协商,这就更复杂了。
SSL MITM 工具(如 Fiddler)不会有任何帮助,因为它们执行自己的握手。通过让客户端信任他们的假服务器证书(用户通常可以在客户端上设置的信任设置),可以配置此类工具以欺骗客户端相信他们是真正的服务器。但是,这在使用客户端证书时不起作用,除非执行握手的工具(在本例中为 SSL MITM 工具)正在处理客户端证书本身。否则最后的验证消息(服务器用来验证客户端是否拥有客户端证书的私钥)将失败。其中一些工具确实可以配置客户端证书,但您需要使用相应的私钥设置它们:在这种情况下,您将知道使用了哪个客户端证书。
另一种检查方法是检查浏览器本身的功能。如何做到这一点可能取决于浏览器。SSLDEBUG
使用 Firefox 时可能会感兴趣的环境变量。
于 2013-06-22T12:56:26.933 回答