SSL 연결을 통해 개인 정보를 보내야하는 독립 실행 형 실행 파일 JAR 프로그램을 만들었습니다.
인증서를 사용하여 SSL 연결을 설정할 수 없습니다. 이 점점되었다 : Java 독립 실행 형 응용 프로그램을 사용하여 SSL 연결
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path `building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target`
그래서 나는 인증서 체인의 유효성을 검사하지 않는 트러스트 매니저를 생성 어딘가에 몇 가지 코드를 발견 트릭을했고, 내가 어떤없이 SSL 연결을 설정할 수 있었다
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
인증서.
개인 정보를 교환 할 때 데이터가 여전히 암호화되는 경우 걱정됩니다. 이것은 클라이언트가 컴퓨터로 다운로드 할 실행 JAR 파일입니다.
이 경우 인증서가 정말 필요합니까?
답변 해 주셔서 감사합니다. 매우 유용합니다. 따라서이 JAR 파일은 클라이언트 컴퓨터에 다운로드/설치되므로 인증서를 다운로드하여 키 저장소에 보관할 수있는 방법이 있다고 생각합니다. 인증서를 다운로드하여 클라이언트 컴퓨터에 저장해야합니까? 이렇게하려면 클라이언트 컴퓨터에서 keytool 명령을 실행하기 위해 원시 코드를 사용해야합니까? – Marquinio
아니요, 자신의 컴퓨터에서 keytool을 한 번 실행 한 다음 응용 프로그램과 함께 키 스토어 (일반적으로 ..jks 파일)를 전달하면됩니다. 나는 당신이 당신의 jar 파일에 keystore를 래핑 할 수 있고 클래스 패스를 통해 참조 할 수 있다고 확신한다. ... Java ssl 클라이언트 구현은 이해하기 쉽지 않으며, 읽고 이해해야한다. 괜찮아요 ... – laher
고마워요. 이제 나는해야 할 일에 대해 명확한 시각을 가지고 있습니다. – Marquinio