2012-03-06 5 views
1

"localhost"로 도메인 이름을 가진 두 개의 인증서를 내 서버 (jboss) 키 저장소에 추가했습니다. 이제는 로컬 클라이언트가 클라이언트에 인증서를 보낼 서버에 액세스하는 경우입니다.
jboss에서 오류가 발생하지 않아 정상적으로 작동합니다. jboss가 보낼 인증서를 선택하는 방법을 알고 싶습니다.

java 프로그램에서 사용하는 truststore의 내용을 나열하십시오.동일한 도메인 이름을 가진 두 개의 인증서

Your keystore contains 2 entries 

tomcat, 5 Mar, 2012, trustedCertEntry, 
Certificate fingerprint (SHA1): B0:F0:98:5F:E5:D0:D6:24:58:B6:38:07:97:38:95:D5: 
AB:28:E1:1E 
tomcat1, 6 Mar, 2012, trustedCertEntry, 
Certificate fingerprint (SHA1): C4:2B:E8:14:F9:85:5A:05:F2:1F:58:AE:65:FB:0E:8F: 
DD:23:97:87 


모두 바람둥이와 cn=localhost
는 제이 보스에 의해 사용되는 keysttore의 내용을 나열했다 tomcat1.
키 스토어 유형 : JKS 키 저장소 제공자 : SUN은

키 스토어는 "-v"키 도구의 목록 번째 옵션 asper 케빈의 요청을 사용하여 키 스토어 항목을 표시이 개 항목

tomcat, 5 Mar, 2012, PrivateKeyEntry, 
Certificate fingerprint (SHA1): B0:F0:98:5F:E5:D0:D6:24:58:B6:38:07:97:38:95:D5: 
AB:28:E1:1E 
tomcat1, 6 Mar, 2012, PrivateKeyEntry, 
Certificate fingerprint (SHA1): C4:2B:E8:14:F9:85:5A:05:F2:1F:58:AE:65:FB:0E:8F: 
DD:23:97:87<br> 


가 포함되어 있습니다.

Keystore type: JKS 
Keystore provider: SUN 

Your keystore contains 2 entries 

Alias name: tomcat 
Creation date: 5 Mar, 2012 
Entry type: PrivateKeyEntry 
Certificate chain length: 1 
Certificate[1]: 
Owner: CN=localhost 
Issuer: CN=localhost 
Serial number: 5aaac34c 
Valid from: Mon Mar 05 15:04:46 IST 2012 until: Sun Jun 03 15:04:46 IST 2012 
Certificate fingerprints: 
     MD5: 6A:9D:10:37:4F:98:7F:85:D5:93:95:CC:C3:84:07:D8 
     SHA1: B0:F0:98:5F:E5:D0:D6:24:58:B6:38:07:97:38:95:D5:AB:28:E1:1E 
     SHA256: FB:F5:BC:9F:17:E9:28:8C:77:1B:40:17:8B:D3:12:71:05:0D:CF:9C 
99:00:C4:25:76:46:CE:E0:0C:E6:6B 
     Signature algorithm name: SHA256withRSA 
     Version: 3 

Extensions: 

#1: ObjectId: 2.5.29.14 Criticality=false 
SubjectKeyIdentifier [ 
KeyIdentifier [ 
0000: F6 B3 2E B5 A0 76 78 7E 9D B6 2A D6 4A 6A 8D 96 .....vx...*.Jj.. 
0010: FA 7D 47 9B          ..G. 
] 
] 



******************************************* 
******************************************* 


Alias name: tomcat1 
Creation date: 6 Mar, 2012 
Entry type: PrivateKeyEntry 
Certificate chain length: 1 
Certificate[1]: 
Owner: CN=localhost 
Issuer: CN=localhost 
Serial number: 4891416 
Valid from: Tue Mar 06 06:41:21 IST 2012 until: Mon Jun 04 06:41:21 IST 2012 
Certificate fingerprints: 
     MD5: B9:31:FE:75:E9:28:E6:BC:F2:94:60:93:7B:0C:00:63 
     SHA1: C4:2B:E8:14:F9:85:5A:05:F2:1F:58:AE:65:FB:0E:8F:DD:23:97:87 
     SHA256: 58:7B:D3:A1:2C:8E:C1:C9:26:0A:9F:A1:86:D1:79:76:34:D2:83:6A 
88:0C:E1:36:F5:88:3F:DC:F7:D7:89 
     Signature algorithm name: SHA256withRSA 
     Version: 3 

Extensions: 

#1: ObjectId: 2.5.29.14 Criticality=false 
SubjectKeyIdentifier [ 
KeyIdentifier [ 
0000: F1 BF 69 B4 CA D6 9E 72 AC C3 26 9F CD 57 58 7A ..i....r..&..WXz 
0010: 62 19 8B B8          b... 
] 
] 



******************************************* 
******************************************* 

답변

1

"키 스토어에서 읽은 첫 번째 키가 사용됩니다"별칭을 지정하지 않으면 다음 바람둥이 별칭은 기본값을 사용합니다

  • 을 집어됩니다 설정에 기본값 X509KeyManager을 사용하여 사용할 인증서를 선택합니다. 키 유형 (예 : RSA 기반 암호 제품군의 경우 RSA)에 유효한 키 저장소에서 찾은 첫 번째 인증서를 선택하고 연결시 인증서를 선택합니다.

    별칭이 keyAlias에 명시 적으로 지정되면 해당 별칭의 인증서가 선택되며 키 유형이 올바르지 않으면 실패합니다. 대신이의, SSLImplementation를 구현하는 사용자 정의 클래스의 이름이 SSLImplementation 속성에 주어진

    하는 경우는, SSLSocketFactory (그래서 별명 선택은 그러나 수행됩니다의 SSLContext/KeyManager가 구성)을 제공하는 데 사용됩니다.

    키 관리자가 요청한 호스트 이름을 사용하여 선택하도록 허용하는 서버 이름 표시 (SNI)에 대한 지원으로, was only introduced in Java 7, and only on the client side이므로 JSSE는 현재 서버 측에서 사용할 수 없습니다.

  • 1

    달성하려는 목표는 무엇입니까? 인증서는 키 스토어에 저장되고 호스트 이름 일치에 따라 사용자에게 제공됩니다. 잘못된 내용입니다. 아래를 참조하십시오.

    논리적으로 말해서 하나만로드되고 차례로 사용자에게 제공됩니다. 다른 link

    1. 를 가리키는으로 단순화하기 위해 노력

      --Edit--
      는 "바람둥이"로 JBoss의 구성에서 "keyAlias"를 지정 말; 그런 다음 기본, 보스 (또는 아파치 톰캣)으로

    +0

    나는 그것이 무엇이 일어나고 있는지 알고 있습니다. 내 질문에 언급했듯이 그것은 완벽하게 잘 작동하고있다.나는 그것이 오류를 보여줄 것으로 예상했다. – Ashwin

    +0

    상점에 실제로 두 개의 인증서가 표시되는지 더 궁금해서 생각해보십시오. 동일한 이름의 두 번째 인증서를 가져 오면 첫 번째 인증서가 우선 적용됩니다. 키 스토어의 내용을 표시 할 수 있습니까? – bubbly

    +0

    : 그 사실을 확인하고 알려 드리겠습니다. – Ashwin

    관련 문제