서버 측 :아파치 HTTP 클라이언트 서버 TLS 구현 : 점점 키 스토어 예외
- 나는 HTTPS 프로토콜이 사용하는 톰캣에 배포 보안 RESTful 서비스가 있습니다.
나는
keytool.
이 serverkeystore에서 servercertificate.cer을 수출하여 키 스토어 serverkeystore 파일을 만들었습니다.
클라이언트 측 :
클라이언트 키 저장소 clientkeystore.jsk
가 clientcertificate.cer 수출 clientkeystore.jsk
에 servercertificate.cer을 수입 만든 clientkeystore.jsk에서.
JAVA_HOME/lib 디렉토리/보안 아래 clientcertificate.cer이
클라이언트 측 코드에서 예외 수입 :이
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)
... 30 more
코드 :
이private SSLConnectionSocketFactory buildSSLSocketFactory() throws Exception, UnrecoverableKeyException, NoSuchAlgorithmException, KeyStoreException {
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
FileInputStream instream = new FileInputStream(new File("path to clientkeystore.jks"));
try {
trustStore.load(instream, "phhclient".toCharArray());
} finally {
instream.close();
}
// Trust own CA and all self-signed certs
SSLContext sslcontext = SSLContexts.custom()
.loadTrustMaterial(trustStore, new TrustSelfSignedStrategy())
.build();
// Allow TLSv1 protocol only
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
sslcontext,
new String[] { "TLSv1" },
null,
SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
return sslsf;
}
수없는 찾을 수 요구 된 인증서에 대한 유효한 인증 경로 t 제가 예외를
감사와 안부를 얻고 왜 알려 주시기 바랍니다 ,이 예외에 대한
라훌자인