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型,但即使如此,我得到的错误,我不能够沟通。
我想也许有我丢失的东西?有人有这种东西的经验吗?
谢谢