레이블이 SSL인 게시물을 표시합니다. 모든 게시물 표시
레이블이 SSL인 게시물을 표시합니다. 모든 게시물 표시

2011년 8월 2일 화요일

SSL(HTTPS) 연동을 위한 설정.

꽤나 복잡하네... 한참 작성해야 할듯


"No trusted certificate found" 이런 에러가 뜰 때
이런 메시지가 뜰 때 아래와 같이 TrustManager를 새로 만들어서 등록함.

SSLContext ctx = SSLContext.getInstance("TLSv1");

X509TrustManager tm = new X509TrustManager() {

@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
}
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
}
};

// ctx.init(null, tmf.getTrustManagers(), null);
ctx.init(null, new TrustManager[] { tm }, null);

SSLSocketFactory sslsocketfactory = ctx.getSocketFactory();

2. 아... CA를 확인할 수 없다고 할때 메시지는 모라고 뜨는지 기억이 안난다.
암튼 그런 인증서 (사설인증서는) CA가 없기 때문에 JRE_HOME/lib/security/cacerts 파일에 인증서를 등록해주면 JKS에서 인증서의 CA를 별도로 해주지 않아도 된다능..
아래와 같이 한다.
keytool -keystore D:\Programming\Java\jdk1.6.0_26\jre\lib\security\cacerts -import -file D:\TEMP\spp\mycert.cer -alias myalias

3. 이건 키 스토어에 인증서 추가하는 명령어

keytool -import -trustcacerts -keystore mykeystore.jks -storepass mypasswd -alias myalias -file mycert.cer -noprompt