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