ssl을 사용하여 웹 서비스를 호출하려고합니다. 어떻게하면 관련 서버 인증서를 받아서 내 트러스트 스토어로 가져올 수 있습니까? 기본 메소드에서 com.ibm.ssl.enableSignerExchangePrompt 특성을 사용하지만 수동으로 서버 인증서를 내 truststore에 추가합니다.서버 인증서 및 클라이언트 트러스트 스토어
나는 어떤 도움 데미안
감사 감사 크게되어내 서블릿의 설정이 속성을 싶지 않는
ssl을 사용하여 웹 서비스를 호출하려고합니다. 어떻게하면 관련 서버 인증서를 받아서 내 트러스트 스토어로 가져올 수 있습니까? 기본 메소드에서 com.ibm.ssl.enableSignerExchangePrompt 특성을 사용하지만 수동으로 서버 인증서를 내 truststore에 추가합니다.서버 인증서 및 클라이언트 트러스트 스토어
나는 어떤 도움 데미안
감사 감사 크게되어내 서블릿의 설정이 속성을 싶지 않는
사용자는 프로그래밍 방식으로 자신의 X509TrustManager를 구현하여 Java로이를 수행 할 수 있습니다.
public class dummyTrustManager implements X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
//do nothing
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
// do nothing
}
public X509Certificate[] getAcceptedIssuers() {
//just return an empty issuer
return new X509Certificate[0];
}
}
은 그럼 당신은
SSLContext context = SSLContext.getInstance("SSL");
context.init(null, new TrustManager[] { new dummyTrustManager() },
new java.security.SecureRandom());
SSLSocketFactory factory = context.getSocketFactory();
InetAddress addr = InetAddress.getByName(host_);
SSLSocket sock = (SSLSocket)factory.createSocket(addr, port_);
그런 다음 그 소켓에 그냥 서버 인증서를 추출 할 수 sockect SSL을 만들려면이 트러스트 매니저를 사용할 수 있습니다 (AN 넣어 가져 오기 그것은 신뢰할 수있는 키 스토어에서 )
SSLSession session = sock.getSession();
Certificate[] certchain = session.getPeerCertificates();
BTW에서는 checkServerTrusted에 이미있는 인증서에 액세스 할 수 있으므로 저장할 수 있습니다. – Alexander
당신이 당신의 웹 브라우저에서 사이트로 이동하는 경우가에 의해 보안 정보를 볼 수 있습니다 작은 자물쇠 아이콘을 치고 팝업 대화 상자에서 인증서를 저장할 수 있습니다.
단계는 '정보'탭에서 (주소 표시 줄)
어떤 프로그래밍 언어를 사용하고 있습니까? BTW, 정말 programmaticaly 인증서를 추가하려면 않는 한 코드 줄을 작성해야 할 필요없이 할 수있는 많은 도구가 있습니다. – Alexander
서버에 대해 (잘 알려진 CA가 서명 한) 적절한 인증서를 얻어서 문제를 해결할 수 있습니다. 특정 인증서를 트러스트 스토어에 추가하는 한 가지 단점은 서버의 인증서가 변경되면 트러스트 스토어를 다시 업데이트 할 때까지 응용 프로그램이 작동하지 않는다는 것입니다. – Alexander