使用JVM标志
-Djavax.net.debug=ssl
正在产生巨大的日志记录,即服务器上每个SSL事件的详细信息。反正只有它有日志错误吗?或者可能有一些更好的这些标志子集产生更整洁的输出
all turn on all debugging
ssl turn on ssl debugging
The following can be used with ssl:
record enable per-record tracing
handshake print each handshake message
keygen print key generation data
session print session activity
defaultctx print default SSL initialization
sslctx print SSLContext tracing
sessioncache print session cache tracing
keymanager print key manager tracing
trustmanager print trust manager tracing
pluggability print pluggability tracing
handshake debugging can be widened with:
data hex dump of each handshake message
verbose verbose handshake message printing
record debugging can be widened with:
plaintext hex dump of record plaintext
packet print raw SSL/TLS packets
答案 0 :(得分:64)
使用其他ssl
标志的格式为ssl:[flag]
,例如:
-Djavax.net.debug=ssl:record
或-Djavax.net.debug=ssl:handshake
。
答案 1 :(得分:13)
我还发现使用-Djavax.net.debug=ssl
(甚至其过滤器)对于调试HTTPS问题来说过于繁琐。
有一点涉及,但我更喜欢做的是在某个廉价的服务器上设置mitmproxy,然后配置我的Java客户端通过它进行代理。通过这种方式,我可以轻松地检查和重放代理上的HTTPS请求/响应流,而无需梳理一堆日志。
如果您感兴趣,我已经写了一篇关于如何实现这一目标的指南:Debugging SSL in Java using mitmproxy