Java SSL 디버그 로깅 제한


96

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

3
예외를 통해 무료로 오류를 얻을 수 있다고 생각합니다. 특별한 조치가 필요하지 않습니다.
jww

이것은 특히 디버깅에 사용됩니다. 따라서 방대한 양의 로그.
javajavajava

1
그것을 설정하면 ""몇 가지 경고 만 표시 되는 것 같습니다.
NateS

답변:


87

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

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


2
이것은 매우 찬성 응답이지만 실제로 사람들에게 효과가 있습니까? 나를위한 것 같지 않습니다. 이러한 옵션이 실제로 작동하지 않는 버그 항목 도 있습니다.
eis

1
@eis 예, 그것은 나를 위해 일했습니다. 아마 당신은 그것을 제대로 설정되지 않고, 우리가 당신을 도울 수 있도록, 그래서, 당신은 결정적으로 : 새로운 질문을해야한다
Alfabravo

@Alfabravo 그래서 버그 항목이 유효하지 않고 예상대로 작동한다고 말하는 것입니까?
eis jul.

1
글쎄, 그것은 2014, jdk7 및 openjdk에서 왔습니다. 또한, 누군가가 댓글을 달았습니다 여기 디버그 로깅이 개선되었다, 그래서 거기에 그
Alfabravo

14

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

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

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


귀하의 접근 방식은 TLS 세션 내에서 발생하는 트래픽을 디버깅하고 모든 세부 정보를 포함하여 수정할 수 있다고 생각하지만 TLS 세션 자체 수준에서 발생하는 문제를 조사 할 때는 훨씬 덜 의미가 있습니다. 프록시는 해당 수준에서 처음에 일어나는 일을 변경하고 숨 깁니다.
jmd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.