에러가 나는 상황 및 참고 URL

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed Error

 

 

webconn = (HttpsURLConnection)new URL(uri).openConnection();
webconn.setHostnameVerifier(new HostnameVerifier() {
	@Override
	public boolean verify(String arg0, SSLSession arg1) {
		return true;
	}
});

1. 직접 HttpsURLConnection 를 사용하다 오류난 경우(Self-signed Certification) 위와 같이 코드상에서 간단히 예외처리 가능. 또한 아래 2번 항목으로도 예외처리 가능.

 

 

 

2. 프록시를 이용하는데 proxy 가 Self-signed Certification 을 사용해서 오류난 경우는 1번으로 해결 불가능. 직접 키 스토어에 인증서를 등록한뒤에 해당 키스토어를 신뢰하도록 설정함.

2.1 먼저 proxy 에서 사용중인 Self-signed certification 을 keystore 으로 등록한다.

keytool -import -noprompt -trustcacerts -alias <AliasName> -file   <certificate> -keystore <KeystoreFile> -storepass <Password>

2.2 keystore 파일을 적당한곳에 위치시키고 자바 실행 인자에 아래와 같이 추가한다. 만일 Tomcat의 경우 Tomcat 실행인자를 수정한다.(단 이때 정상적인 HTTPS 도 오류가 날수 있다. 반드시 테스트 후에는 해당 인자를 제거해야 기존 신뢰인증서에 대한 검증을 제대로 수행한다.)

-Djavax.net.ssl.trustStore=<keystore path> -Djavax.net.ssl.trustStorePassword=<keystore password>

 

[Eclipse 에서 Tomcat 실행 환경 변수]

 

 

 

 

 

 

+ Recent posts