자바를 사용하여 파일을 HTTPS 서버에 업로드하려고합니다. 서버가 열린 URL이 아니므로 연결을 설정하기 위해 클라이언트 인증서가 필요합니다. 클라이언트 인증서 파일이 .pem , .jks , .pkcs12
입니다.클라이언트 인증서를 사용하여 HTTPS에 연결 설정
통신을 설정하기 위해 응용 프로그램에서이 인증서 파일을 사용하는 방법을 제안 할 수 있습니까? 3 개의 인증서 파일을 모두 사용해야합니까?
자바를 사용하여 파일을 HTTPS 서버에 업로드하려고합니다. 서버가 열린 URL이 아니므로 연결을 설정하기 위해 클라이언트 인증서가 필요합니다. 클라이언트 인증서 파일이 .pem , .jks , .pkcs12
입니다.클라이언트 인증서를 사용하여 HTTPS에 연결 설정
통신을 설정하기 위해 응용 프로그램에서이 인증서 파일을 사용하는 방법을 제안 할 수 있습니까? 3 개의 인증서 파일을 모두 사용해야합니까?
.jks
파일은 Java Keystore입니다. 올바른 클라이언트 인증서 (인증서 체인의 중간 인증서 일 수도 있음)가 있어야합니다.
파일을 HTTPS 서버에 업로드하는 클라이언트를 작성한다고 가정합니다. 그런 다음 .jks
파일을 클라이언트 인증서와 함께 사용해야합니다 (예 : apache) HttpClient
.
당신은 당신이 SSLConnectionSocketFactory
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, new String[] { "TLSv1" }, null, SSLConnectionSocketFactory.getDefaultHostnameVerifier());
에 sslContext
을 넣어야 그리고 마지막으로 HttpClient
HttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();
을 구축 그런 다음 스토어
SSLContext sslcontext = SSLContexts.custom().loadTrustMaterial(new File("keystore", "yourPassword".toCharArray(), new TrustSelfSignedStrategy()).build();
을 SSLContext
를 만들고로드해야합니다
모든 단계를 완료 한 후 httpClient는 원하는 요청에 대해 keystore의 클라이언트 인증서를 사용해야합니다.
[HTTPS/SSL을 통한 Java 클라이언트 인증서] 가능한 복제본 (http://stackoverflow.com/questions/875467/java-client-certificates-over-https-ssl) – Matthias