2
我有Apache Tomcat服務器A的Web應用程序這使得Web應用程序連接到運行在其他地方的服務器B中。此服務器B需要使用SSL證書的客戶端身份驗證Tomcat作爲一個客戶端。在Tomcat Web應用程序不使用SSL客戶端證書
我所試圖實現的是,爲了使服務器A這個Web應用程序使用SSL客戶端證書到服務器B驗證
因此,我已經提供了一些額外的JAVA_OPTS我的Tomcat服務器答:
-Djavax.net.ssl.trustStore=/location/keystore.jks
-Djavax.net.ssl.trustStorePassword=changeit
-Djavax.net.ssl.keyStore=/locaton/keystore.jks
-Djavax.net.ssl.keyStorePassword=changeit
-Djavax.net.debug=ssl
現在這個keystore.jks包含三個證書:
- CA證書
- 服務器證書(PKCS12)這是服務器的證書一個
- 客戶端證書(PKCS12),這是客戶端證書我希望我的web應用程序使用。
的tomcat /日誌/ catalina.out中給出了這樣的:
Client write key:
0000: some hex
Server write key:
0000:some hex
... no IV used for this cipher
*** CertificateVerify
pool-1-thread-2, WRITE: TLSv1 Handshake, length = 134
pool-1-thread-2, WRITE: TLSv1 Change Cipher Spec, length = 1
Finished
verify_data: { data }
pool-1-thread-2, WRITE: TLSv1 Handshake, length = 32
pool-1-thread-2, READ: TLSv1 Alert, length = 2
pool-1-thread-2, RECV TLSv1 ALERT: fatal, unsupported_certificate
pool-1-thread-2, called closeSocket()
pool-1-thread-2, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: unsupported_certificate
pool-1-thread-2, called close()
爲了證明這個密鑰庫我寫了一個小的Java應用程序,這使得具有相同連接到同一臺服務器B的正確性密鑰庫併成功協商客戶端證書。
我曾試圖改變這種客戶端證書X509型,但即使如此,我得到的錯誤,我不能夠溝通。
我想也許有我丟失的東西?有人有這種東西的經驗嗎?
謝謝