[java] Java SSL 디버그 로깅 제한

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



답변

추가 ssl플래그 를 사용하는 형식은 ssl:[flag]다음과 같습니다.

-Djavax.net.debug=ssl:record또는 -Djavax.net.debug=ssl:handshake.


답변

또한 -Djavax.net.debug=sslHTTPS 문제를 디버깅하기에는 사용 (또는 필터)이 너무 번거 롭다 는 것을 알게 되었습니다.

약간 관련이 있지만 제가 선호하는 것은 저렴한 서버에 mitmproxy 를 설정 한 다음이를 통해 프록시하도록 Java 클라이언트를 구성하는 것입니다. 이렇게하면 여러 로그를 훑어 볼 필요없이 프록시에서 HTTPS 요청 / 응답 흐름을 편안하게 검사하고 재생할 수 있습니다.

관심이 있으시면이 작업을 수행하는 방법에 대한 가이드를 작성했습니다. mitmproxy를 사용하여 Java에서 SSL 디버깅


답변