> Java > java지도 시간 > HTTPS와 함께 Java 클라이언트 인증서를 사용할 때 javax.net.ssl.SSLHandshakeException을 해결하는 방법은 무엇입니까?

HTTPS와 함께 Java 클라이언트 인증서를 사용할 때 javax.net.ssl.SSLHandshakeException을 해결하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-26 06:17:10
원래의
336명이 탐색했습니다.

How to Resolve javax.net.ssl.SSLHandshakeException When Using Java Client Certificates with HTTPS?

HTTPS/SSL을 통한 Java 클라이언트 인증서

원격 서버와 HTTPS 연결을 설정할 때 클라이언트를 제시해야 하는 시나리오가 있을 수 있습니다. 인증을 위한 인증서입니다. 이를 위해서는 서버의 루트 인증서를 신뢰 저장소로 가져와야 하며 클라이언트 인증서와 비밀번호가 올바르게 구성되어야 합니다.

javax.net.ssl.SSLHandshakeException을 극복하려면: sun.security.validator.ValidatorException: PKIX 경로 구축 실패 문제인 경우 다음 명령을 사용하여 서버의 루트 인증서를 신뢰 저장소로 가져와야 합니다.

keytool -import -alias gridserver -file gridserver.crt -storepass $PASS -keystore gridserver.keystore
로그인 후 복사

다음, 다음 속성을 설정하여 키 저장소 및 신뢰 저장소 정보를 지정합니다.

-Djavax.net.ssl.keyStoreType=pkcs12
-Djavax.net.ssl.trustStoreType=jks
-Djavax.net.ssl.keyStore=clientcertificate.p12
-Djavax.net.ssl.trustStore=gridserver.keystore
-Djavax.net.debug=ssl # very verbose debug
-Djavax.net.ssl.keyStorePassword=$PASS
-Djavax.net.ssl.trustStorePassword=$PASS
로그인 후 복사

이 구성을 사용하면 HttpsURLConnection을 생성하고 SSLSocketFactory를 설정하여 클라이언트 인증서 확인을 처리할 수 있습니다.

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
URL url = new URL("https://gridserver:3049/cgi-bin/ls.py");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
로그인 후 복사

에서 여기에서 원하는 대로 HTTPS 연결의 응답을 읽을 수 있습니다.

위 내용은 HTTPS와 함께 Java 클라이언트 인증서를 사용할 때 javax.net.ssl.SSLHandshakeException을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿