限制 java ssl 调试日志记录

2022-08-31 09:22:46

使用 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

进一步阅读


答案 1

例如,使用附加标志的格式为:sslssl:[flag]

-Djavax.net.debug=ssl:record或。-Djavax.net.debug=ssl:handshake


答案 2

我还发现使用(甚至其过滤器)对于调试HTTPS问题来说太麻烦了。-Djavax.net.debug=ssl

这有点复杂,但我更喜欢做的是在某个廉价服务器上设置mitmproxy,然后将我的Java客户端配置为通过它进行代理。通过这种方式,我可以轻松地检查和重播代理上的HTTPS请求/响应流,而无需梳理一堆日志。

如果您有兴趣,我已经写了一本关于如何实现这一目标的指南:使用mitmproxy在Java中调试SSL