내가 HTTPS 웹 사이트에 연결하려고 할 때 : 내가 대신 http://company.com
를 사용하는 경우는
StringBuilder sb = new StringBuilder();
URL oracle = new URL("https://company.com");
URLConnection yc = oracle.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
sb.append(inputLine);
in.close();
return sb.toString();
내가
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
at sun.security.validator.Validator.validate(Validator.java:260)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491)
를 얻을 수 그것은 작동하지만 https 하나를 사용하기를 원합니다. 왜냐하면 그것이 사용하는 말이고 비보안 제품이 제거 될 수 있다고 생각하기 때문입니다.
그러나 이것에 대한 비슷한 대답을 보았을 때 브라우저 ectera에서 인증서를 복사하는 방법에 대해 이야기합니다. 특별한 작업을 수행하지 않고도 모든 컴퓨터에서 코드를 실행하는 모든 사용자에게 적합한 솔루션이 필요합니다.
이 프로젝트의 SSL 보안 이점에 관심이 없습니다. 단지 wenbsite에 연결할 수 있기를 원합니다.
"SSL에 대해 걱정하지 않음으로써"문제의 사이트가 분명히 man-in-the-middle 공격에 속아서도 man-in-the-middle 공격에 속아 있다는 것을 신경 쓰지 않는다고 말합니다. in-the-middle 공격 (https 버전 사용을 말하고 http 버전이 언젠가 제거 될 수 있음). –
먼저, 사이트가 HTTP를 제공하지 않으면 어쨌든 실패 할 것입니다. 둘째, 런타임은 기본 [트러스트 스토어] (http://stackoverflow.com/questions/1398556/connect-to-https-siteserver)와 함께 제공되므로 요청이 작동해야합니다. 어쩌면 해당 웹 사이트의 인증서에 문제가있어 유효성을 확인할 수 없습니다. – Alfabravo
@ T.J.Crowder 그들이 https 버전을 제공하지 않았다면 사이트를 사용하지 말라고 말하지 않을 것입니다. 데이터에 대해 중요한/민감한 정보는 없습니다. 그래서 제 생각에 SSL에 대해 걱정하지 않는 것에 대해 비난하는 대신 어떻게 문제를 해결할 수 있습니까? –