이 주제에 대한 유용한 정보는 오라클 사이트의 Leveraging Security in the Native Platform Using Java SE 6 Technology 및 Java Secure Socket Extension (JSSE) Reference Guide입니다.
당신은 자바가 다음 실행에 다음과 같은 시스템 속성을 지정할 수 있습니다 인증서의 유효성을 검사하기 위해 Windows 인증서 저장소를 사용하려면 :
는 Windows 인증서 저장소를 사용하는 하나의 연결을 원하는 경우 -Djavax.net.ssl.keyStoreType=Windows-MY -Djavax.net.ssl.trustStoreType=Windows-ROOT
인증서를 확인하려면 필요에 맞게 다음 코드를 수정할 수 있습니다.
KeyStore ks = KeyStore.getInstance("Windows-MY");
ks.load(null, null);
KeyStore ts = KeyStore.getInstance("Windows-ROOT");
ts.load(null, null);
TrustManagerFactory tmf = TrustManagerFactory
.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(ts);
KeyManagerFactory kmf = KeyManagerFactory
.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(ks, new char[0]);
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
URL url = new URL("https://some.web.site.org");
javax.net.ssl.HttpsURLConnection urlConnection =
(javax.net.ssl.HttpsURLConnection) url.openConnection();
urlConnection.setSSLSocketFactory(ctx.getSocketFactory());
urlConnection.connect();
try (InputStream in = urlConnection.getInputStream();) {
byte[] chunk = new byte[1024];
for (int len; (len = in.read(chunk)) > -1;) {
System.out.write(chunk, 0, len);
}
} finally {
urlConnection.disconnect();
}