IntelliJ에서 JVM 옵션 설정하기
- Run/Debug Configurations 열기
- IntelliJ IDEA의 우측 상단에 있는 실행/디버그 설정 드롭다운에서 Edit Configurations...를 클릭하거나 Run > Edit Configurations...를 선택하세요.
- 프로젝트 또는 애플리케이션 선택
- Run/Debug Configurations 창에서 프로젝트 또는 실행할 애플리케이션의 설정을 선택합니다.
- VM Options에 프록시 설정 추가
- 설정 페이지에서 VM Options 필드에 다음 프록시 설정을 추가합니다.
- -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8888
-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8888 - 설정 저장 및 실행
- 설정을 저장한 후 Apply 및 OK 버튼을 클릭하고, 해당 Run Configuration을 선택하여 디버깅을 시작합니다.
이제 IntelliJ에서 디버깅할 때 모든 HTTP 및 HTTPS 요청이 Fiddler를 통해 전달되어 모니터링이 가능하게 됩니다.
* PKIX path building failed는 SSL 인증서 검증 과정에서 발생하는 문제를 나타냅니다. 이는 Fiddler를 통해 HTTPS 통신을 프록시할 때 Fiddler의 자체 서명된 인증서를 신뢰하지 못해 발생하는 문제입니다.
해결 방법: Fiddler 인증서를 신뢰하도록 Java Keystore 설정
- Fiddler 인증서 다운로드
- Fiddler를 열고 Tools > Options > HTTPS 탭으로 이동합니다.
- Actions > Export Root Certificate to Desktop 옵션을 클릭합니다. 이 옵션은 Fiddler의 루트 인증서를 데스크톱에 FiddlerRoot.cer로 내보냅니다.
- Fiddler에서 사용되는 루트 인증서를 Java Keystore에 수동으로 추가해야 합니다.
# keytool을 이용해 Fiddler 인증서 추가
keytool -import -noprompt -trustcacerts -alias fiddler -file C:\Users\User\.jdks\corretto-21.0.3\lib\security\FiddlerRoot.cer -keystore C:\Users\User\.jdks\corretto-21.0.3\lib\security\cacerts -storepass changeit- $JAVA_HOME을 실제 Java 설치 경로로 바꿔줍니다.
- FiddlerRoot.cer 경로는 1번에서 내보낸 Fiddler 인증서 파일의 경로로 대체해야 합니다.
- changeit은 cacerts keystore의 기본 비밀번호입니다. 변경하지 않았다면 그대로 사용하면 됩니다.
- Fiddler 루트 인증서를 Java의 cacerts keystore에 추가해야 합니다.
- IntelliJ에서 다시 실행
- 위와 같이 설정한 후 IntelliJ에서 Run/Debug Configurations에 설정된 JVM 옵션과 함께 애플리케이션을 다시 실행합니다.
요약
- Fiddler 인증서를 내보내고 Java Keystore에 추가합니다.
- 필요한 JVM 옵션을 사용하여 IntelliJ에서 실행합니다.
이렇게 하면 Spring Boot 애플리케이션이 Fiddler를 통한 HTTPS 통신 시 Fiddler의 자체 서명된 인증서를 신뢰할 수 있게 되어 PKIX path building failed 오류가 해결됩니다.