https url로 연결을 설정하려고했으나 테스트 중이므로 url이 테스트 환경으로 리디렉션되어 브라우저가 프롬프트를 표시합니다 대략 인증서가 신뢰할 수 있고 유효하지만 도메인 이름과 일치하지 않는다는 메시지와 사용자가 계속 진행하려는 경우. 나는 자바에서 이것을 다루는데 어려움을 겪고있다. 내가 찾은 모든 대답은 이와 같은 TrustManager를 사용하는 것이 좋습니다.Java SSL 연결에서 "인증서에 잘못된 이름"유형 오류가 발생합니다.
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {
return;
}
public void checkServerTrusted(X509Certificate[] certs, String authType) {
return;
}
}};
sslContext.init(kmf.getKeyManagers(), trustAllCerts, new SecureRandom());
그러나 이것은 아무런 변화가 없습니다.
인증에는 클라이언트 인증서의 개인 키를 읽을 때 암호를 입력해야하는데이 방법은 브라우저와 응용 프로그램에서 모두 동일하게 올바르게 작동합니다.이 인증 후에는 브라우저에서 팝업이 나타나거나 연결에서 내 응용 프로그램에서 'bad_certificate'오류가 발생했습니다. 도메인 유효성 검사를 완전히 무시하거나 동일한 프롬프트를 표시하는 다른 방법이 있습니까?
분명히하기 위해 프로그램을 만들었 기 때문에 암호를 묻는 메시지가 나타나지 않습니다. 응용 프로그램이 개인 키를 액세스하려고 할 때 응용 프로그램을 탐지하는 창에서 발생한다고 생각합니다. 두 번째 프롬프트는 비슷한 방식으로 작동하지만 아직 어떤 매개 변수도 찾지 못했습니다.
이것은 유효한 경고입니다. 그러나 나는 대답이 아니라는 이유로 downvoted : Java 코드가 합법적 인 HTTPS URL에 연결해야하는 상황이 있습니다. Java 코드는 좋은 브라우저와 마찬가지로 "인증서의 이름 X가 일치하지 않습니다 URL의 호스트 이름 Y "와 사용자가 어쨌든 연결을 원할 때. –