에러가 나는 상황 및 참고 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 실행 환경 변수]

 

 

 

 

 

 


Step by Step guide to Enable HTTPS or SSL correct way on Apache Tomcat Server – Port 8443 

keystore 를 만들어서 Tomcat이 HTTPS 서비스를 할 수 있도록 하기 위한 방법
https://crunchify.com/step-by-step-guide-to-enable-https-or-ssl-correct-way-on-apache-tomcat-server-port-8443/




Create a PKCS12 (.pfx / .p12) from a JKS / JAVA keystore


만들어진 keystore 를 다시 PKCS12 로 변환 하는 방법. 변환한 뒤에 OS의 인증서 관리 툴에서 import 시킨뒤에 trusted로 지정하면 인증서 오류가 사라짐.

https://www.tbs-certificates.co.uk/FAQ/en/627.html



참고 url : http://xxx.xxx.xxx.xxx:8080/tomcat-docs/ssl-howto.html

0. Tomcat 을 끈다.

1. JSK 1.3 이전 버전일 경우 별도의 라이브러리를 설치해야함
 JSSE 1.0.3 : http://java.sun.com/products/jsse/

2. 인증서(keystore)를 생성한다.
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA \
  -keystore \path\to\my\keystore

3. server.xml 의 8443 을 몽땅 443 으로 고친다. (이때 https 로 접속하면 자동으로 443 번 포트를 쓰므로 포트 번호를 붙일 필요가 없다.)

4. ssl 서비스의 keystore 의 위치를 지정한다.
    <Connector port="443" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystorePass="암호" keystoreFile="c:\.keystore" /> <== 추가

5. 톰캣 기동!

JSP 에서 파일관련 작업을 하다보면 절대경로가 필요한 경우가 있다.

직접 테스트를 해보면 확실할것이나...

시간이 없는걸.. ㅡㅡ;

네박사에게 물어본 결과..

요즘 Tomcat 튜닝 때문에 정신이 없다.

별 생각없이 개발용 환경을 그대로 서비스했더니 하루에 수백만건의 데이터 수집을 너무 우습게 생각했나보다.

지금도 서버는 숨이 간당간당한 상태.. 그리고 난 지금 열심히 튜닝에 대해서 공부중..

이건 어느 사이트에서 긁어온 JAVA 의 GC 에 대한 내용이다.

그리고 조병욱 님의 pdf 파일을 첨부한다.

불펌 죄송합니다.

+ Recent posts