>Java >java지도 시간 >보안 HTTPS 연결을 위해 Java 클라이언트 인증서를 어떻게 구성합니까?

보안 HTTPS 연결을 위해 Java 클라이언트 인증서를 어떻게 구성합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-07 12:48:14464검색

How Do I Configure Java Client Certificates for Secure HTTPS Connections?

HTTPS/SSL 연결을 위한 Java 클라이언트 인증서

Java 6에서 클라이언트 인증서를 사용하여 HTTPS 연결을 생성하려면 두 가지 프로세스가 필요합니다. 서버의 자체 서명된 루트 인증서를 신뢰 저장소에 넣고 시스템을 통해 클라이언트 인증서와 키 저장소 정보를 지정합니다.

서버의 루트 인증서 가져오기

자체 서명된 루트 인증서를 신뢰 저장소로 가져와야 합니다. 이는 다음 명령을 사용하여 수행할 수 있습니다:

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 # for verbose debugging
-Djavax.net.ssl.keyStorePassword=$PASS
-Djavax.net.ssl.trustStorePassword=$PASS

샘플 코드

다음 코드 샘플은 HTTPS 연결에 클라이언트 인증서를 사용하는 방법을 보여줍니다.

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
URL url = new URL("https://gridserver:3049/cgi-bin/ls.py");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
InputStream inputstream = conn.getInputStream();
InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
BufferedReader bufferedreader = new BufferedReader(inputstreamreader);

String string = null;
while ((string = bufferedreader.readLine()) != null) {
    System.out.println("Received " + string);
}

서버의 루트 인증서를 신뢰 저장소로 가져오고 필요한 클라이언트 인증서 정보를 지정하여, Java는 클라이언트 인증서와의 HTTPS 연결을 성공적으로 설정할 수 있습니다.

위 내용은 보안 HTTPS 연결을 위해 Java 클라이언트 인증서를 어떻게 구성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.