내가이 페이지에 표시되는 모든 인증서를 승인하는 방법 그것은 격리 된 환경에 있기 때문에 지금 중간에 사람에 대해 신경을 써야하며 QA 데이터에 대한 자동화 된 테스트를 위해 몇 가지 일을하고 있습니다.닝 비동기 HTTP 클라이언트 그냥 무시하고 내가하지 않는이 환경에 어떠한 인증서를 수락 할 경우 HTTPS</p> <p><a href="http://sonatype.github.com/async-http-client/ssl.html" rel="nofollow">http://sonatype.github.com/async-http-client/ssl.html</a></p> <p>하지만 작업을 수행하는 방법을
어쩌면 내 질문은 다른 끝 (이것은 https 이후 양방향되지 않습니다)에있는 모든 인증서를 받아들이도록 java SSL 스택에서 SSL을 가짜 만드는 방법입니다.
위의 링크에서 클라이언트에 대한 공통 코드는
char[] keyStorePassword = "changeit".toCharArray();
KeyStore ks = KeyStore.getInstance("JKS");
//ks.load(keyStoreStream, keyStorePassword);
char[] certificatePassword = "changeit".toCharArray();
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, certificatePassword);
KeyManager[] keyManagers = kmf.getKeyManagers();
javax.net.ssl.TrustManager tm = new MyTrustMgr();
javax.net.ssl.TrustManager[] trustManagers = new javax.net.ssl.TrustManager[]{tm };
SecureRandom secureRandom = new SecureRandom();
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(keyManagers, trustManagers, secureRandom);
return ctx;
좋아, 해제 작업, 난 아직도 어떤 이유로
X509TrustManager tm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] xcs,
String string) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] xcs,
String string) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null, new TrustManager[] { tm }, null);
return ctx;
덕분에 작동하지 않는이 발견, 입니다 딘