꽤나 복잡하네... 한참 작성해야 할듯
"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
댓글 없음:
댓글 쓰기