HttpsURLConnection을 사용하여 HTTPS 연결을 설정할 때 SSL 핸드 셰이크에 자체 인증서 확인 단계를 적용해야합니다. 호스트 인증서의 일부 속성을 확인하기 위해 자체 인증서 확인 코드를 작성했습니다. 인증서 해지 상태온라인 인증서 상태 프로토콜을 사용합니다. 이 단계를 Java에 포함시키는 올바른 방법은 무엇입니까? 다음과 같이 기본 HostNameVerifier의 일부로 추가 할 수 있지만이를 수행하는 적절한 방법이 있습니까?HTTPS에서 자체 인증서 확인 단계 수행 방법
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
HostnameVerifier verifier = HttpsURLConnection.getDefaultHostnameVerifier();
public boolean verify(String s, SSLSession sslSession) {
return verifier.verify(s, sslSession) && MyVerifier.doMyVerification(sslSession);
}
});
'getAcceptedIssuers()'는 null을 반환 할 수 없으므로 안전하지 않습니다. checkClientTrusted()에서 아무것도하지 않는다. – EJP
예, HostName을 확인하기 위해 true를 반환하는 것은 보안 적이 지 않으며 명백하다. 메소드를 구현하는 확실한 방법을 찾는 것은 개발자의 몫입니다. 질문은 "HTTPS에서 사용자 정의 인증서 확인 단계를 수행하는 방법"이며 checkServerTrusted (..) 메소드의 사용자 정의 TrustManager에 추가해야하며 HostNameVerifier에는 추가하지 말아야합니다. – Jeewantha