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 중국어 웹사이트의 기타 관련 기사를 참조하세요!