2017-01-17 1 views
3

JAVA 클라이언트 응용 프로그램이 있고 https를 통해 서버 (example.com)에 연결하려고합니다. 클라이언트 응용 프로그램에는 서버의 인증서와 다른 인증서가있는 JKS 트러스트 스토어가 있습니다. 서버가이 클라이언트 응용 프로그램에 인증서를 보낼 때 손 쉐이크 프로세스에서 올바른 인증서가 신뢰 저장소 jks에서 선택됩니다. 즉, JKS에 저장된 인증서로 서버가 보낸 인증서와 java 매개 변수가 일치하는지 여부를 기반으로합니다.JKS에서 ssl 핸드 셰이크로 올바른 인증서를 가져 오는 방법

답변

1

일치는 인증서의 Subject입니다.

예. 당신이 https://www.google.com/을 찾아 자신의 인증서를 보면, 그것은을 가진 인증서 체인을 보여줍니다

제목 : 발행     /C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com
:에 의해 /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
문제 : /C=US/O=Equifax/OU=Equifax Secure Certificate Authority

/C=US/O=Google Inc/CN=Google Internet Authority G2
에 의해 발행 * 실제로 얻은 결과 openssl s_client -connect www.google.com:443 -showcerts

인증서가 인 경우 중 귀하의 truststore에 있습니다.

당신은이 같은 신뢰를 스캔 할 수 있습니다

(당신이 grep이 가정) :

Alias name: geotrustglobalca 
Creation date: Jul 18, 2003 
Entry type: trustedCertEntry 

Owner: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US 
Issuer: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US 
Serial number: 23456 
Valid from: Tue May 21 00:00:00 EDT 2002 until: Sat May 21 00:00:00 EDT 2022 
Certificate fingerprints: 
     MD5: F7:75:AB:29:FB:51:4E:B7:77:5E:FF:05:3C:99:8E:F5 
     SHA1: DE:28:F4:A4:FF:E5:B9:2F:A3:C5:03:D1:A3:49:A7:F9:96:2A:82:12 
     SHA256: FF:85:6A:2D:25:1D:CD:88:D3:66:56:F4:50:12:67:98:CF:AB:AA:DE:40:79:9C:72:2D:E4:D2:B5:DB:36:A7:3A 
     Signature algorithm name: SHA1withRSA 
     Version: 3 
:

keytool -list -keystore /path/to/cacerts -storepass changeit -v | grep "CN=GeoTrust Global CA" -B 4 -A 8 

출력의이 종류를 얻으려면

관련 문제