<< Tomcat 성능 향상 방법들 | Home | 2010년 소비 트렌드 7 >>

SOAP 클라이언트에서 SSL 통신하기

SOAP client with SSL

SSL방식으로 SOAP 통신시 아래와 같은 오류가 날 경우 해결책을 공유합니다. 대부분의 경우 클라이언트에서 certificate 체크과정에서 나는 오류일 겁니다.
javax.net.ssl.SSLHandshakeException: sun.security.validator.
ValidatorException:
PKIX path building failed: sun.security.provider.certpath.
SunCertPathBuilderException:
unable to find valid certification path to requested target

1. 접속할 서버의 인증서를 다운 받음
 - https://url에서 IE7 에서 주소창 옆에 자물쇠 아이콘 클릭하여 인증서보기에서 추출
 - aaa.cer로 저장

2. keystore 처리
 - keytool -import -trustcacerts -file "/tmp/aaa.cer" -keystore "/tmp/aaa.ks"
 - 암호가 입력되면 keystore에 추가됨(/tmp/aaa.ks)

3. SOAP Client 어플에 설정 추가
 - 첫번째 방법
  . System.setProperty("javax.net.ssl.keyStore", "/tmp/aaa.ks");
  . System.setProperty("javax.net.ssl.keyStorePassword", "password");
  . System.setProperty("javax.net.ssl.trustStore", "/tmp/aaa.ks");

 - 다른 대안
 AxisProperties.setProperty("axis.socketSecureFactory","org.apache.axis.components.net.SunFakeTrustSocketFactory");
  . SunFakeTrustSocketFactory 클래스를 선언하여  certificate 체크를 안하게 함
Tags : , , ,


Re: SOAP 클라이언트에서 SSL 통신하기

감사합니다~ ^^

Re: SOAP 클라이언트에서 SSL 통신하기

해결됐습니다..

너무 감사합니다... ㅠㅠ...

내일까지 개발인데.. 이것때문에 2틀동안 헤메고 있었습니다.

감사해요..

Re: SOAP 클라이언트에서 SSL 통신하기

감사합니다...덕분에 잘 해결되었습니다. 제가 아무 개념 없이 님글 덕분에 해결했는데요.. 제가 이해한 것이 맞는지 알려주시면 더욱 감사하겠습니다. 클라이언트 프로그램 내부에서 SSL통신 접속 할 때 클라이언트에 인증서가 설치되어 있어야 되는데 클라이언트 환경의 jre에 인증서를 설치(등록)해서 사용한다는 것인가요? 제 SOAP Client프로그램에서는 . System.setProperty("javax.net.ssl.keyStore", "/tmp/aaa.ks"); . System.setProperty("javax.net.ssl.keyStorePassword", "password"); . System.setProperty("javax.net.ssl.trustStore", "/tmp/aaa.ks"); 이 부분은 생략해도 인증서 설치 작업 후엔 SSL로 잘 접속이 되었습니다. ..암튼 제가 이해한것이 맞는지 알려주시면 더욱 감사하겠습니다.

Add a comment Send a TrackBack