Java SSL 디버그 로깅 제한

Mehvish Ashiq 2023년6월20일
  1. Java SSL 디버그 및 그 중요성
  2. Java SSL 디버그 로깅 제한
Java SSL 디버그 로깅 제한

오늘은 Java SSL 디버그, 그 중요성, 다양한 유틸리티 및 단일 명령에서 하나 또는 여러 개를 사용하는 방법에 대해 알아봅니다.

Java SSL 디버그 및 그 중요성

Java 웹 애플리케이션에서 SSL(Secure Socket Layer)을 처리하는 것은 재미가 없습니다. 특히 문제 해결이나 디버깅 로그 없이 브라우저에 페이지를 표시할 수 없습니다라는 보기 흉한 페이지가 표시될 때 그렇습니다.

이러한 상황에서는 애플리케이션을 쉽게 디버깅할 수 있고 자세한 로그를 볼 수 있는 SSL의 중요성이 높아집니다. 이 로그는 이 오류에 대해 우리(개발자)를 안내합니다.

사용할 수 있는 다양한 디버그 유틸리티가 있습니다. 다음은 애플리케이션 서버 JVM(Java Virtual Machine)에서 모든 SSL 디버깅 로그를 활성화하는 것입니다.

다음 JVM 명령줄 매개변수를 추가한 후 애플리케이션 서버를 다시 시작하는 것을 잊지 마십시오.

-Djavax.net.debug=ssl

문제는 위의 명령이 일부 시나리오에서는 필요하지 않을 수 있는 모든 SSL 디버깅을 켠다는 것입니다.

그렇다면 Java SSL 디버그 로깅을 어떻게 제한할 수 있습니까? 아래에서 배워봅시다.

Java SSL 디버그 로깅 제한

-Djavax.net.debug=ssl 명령을 사용하면 서버의 각 SSL 이벤트에 대한 엄청난 양의 로깅 및 세부 정보가 기록됩니다. 프로젝트 요구 사항에 따라 어떻게 제한할 수 있습니까?

이를 해결하려면 디버그 로깅을 위해 SSL이 필요한 콜론(:)으로 구분된 디버그 지정자(플래그라고도 함)를 지정해야 합니다. 예를 들어 handshake에 대해 다음과 같이 기록할 수 있습니다.

-Djavax.net.debug=ssl:handshake

javax.net.debug 속성 값(ssl이든 all이든 뒤에 디버그 지정자(선택 사항))을 지정해야 한다는 점을 기억하십시오.

또한 여러 디버그 지정자를 사용할 수 있으며 이러한 옵션(디버그 지정자)에 구분 기호가 없어도 됩니다. 하지만 구분 기호(: 또는 ,)가 있으면 가독성이 높아집니다. 명확하게 이해하려면 다음 예를 참조하십시오.

-Djavax.net.debug=ssl:handshake, record, session

위의 명령은 콜론(:)을 여러 디버그 지정자 사이의 구분 기호로 사용할 수도 있습니다. 어떤 구분 기호를 사용하는지는 중요하지 않습니다. 디버그 지정자의 순서도 중요하지 않습니다.

다음은 알아두면 유용할 수 있는 몇 가지 옵션입니다.

디버그 지정자(옵션) 설명
all 모든 디버깅을 켭니다.
ssl 모든 ssl 디버깅을 켭니다.
record ssl과 함께 사용되며 레코드별 추적을 활성화합니다.
handshake ssl과 함께 사용되며 모든 handshake 메시지를 인쇄합니다.
keygen ssl과 함께 사용되며 키 생성 데이터를 인쇄합니다.
session ssl과 함께 사용되며 세션 활동을 인쇄합니다.
defaultctx ssl과 함께 사용하고 기본 ssl 초기화를 인쇄할 수 있습니다.
sslctx ssl 및 인쇄 ssl 컨텍스트 추적과 함께 사용됩니다.
sessioncache ssl과 함께 사용되며 세션 캐시 추적을 인쇄합니다.
keymanager ssl과 함께 사용되며 키 관리자 추적을 인쇄합니다.
trustmanager 신뢰 관리자 추적을 인쇄하고 ssl과 함께 사용됩니다.
data handshake 디버깅을 확장하는 데 사용할 수 있는 모든 handshake 메시지의 16진수 덤프입니다.
verbose verbose handshake 메시지 인쇄 및 handshake 디버깅을 확장하는 데 사용됩니다.
plaintext 레코드 디버깅을 확장하는 데 사용되는 레코드 일반 텍스트의 16진수 덤프입니다.
packet 원시 SSL/TLS 패킷을 인쇄하며 레코드 디버깅을 확장하는 데도 사용됩니다.

필요와 프로젝트 요구 사항에 따라 이들 중 하나를 사용할 수 있습니다.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - Java SSL