【发布时间】:2011-09-12 18:51:33
【问题描述】:
我在需要双向 SSL 身份验证的 SUNWappserver 上部署了一个 webapp-1。我可以为它写一个java client-1,效果很好。
但是,当我将 webapp-1 的 client-2 作为 web 服务(而不是独立的 java 程序)编写时,我遇到了问题。
我在 jetty-8 服务器上部署 client-2。在 SSL 握手期间,Jetty 首先从 SUNWappserver 获取证书(这没关系:找到受信任的证书),然后 Jetty 从 SUNWappserver 接收一个 CertificateRequest(连同 Cert Authorities)。然而,Jetty 只是回复一个空的证书链。
.
.
*** CertificateRequest
Cert Types: RSA, DSS
Cert Authorities:
****<CNs removed from here>****
*** ServerHelloDone
*** Certificate chain
***
*** ClientKeyExchange, RSA PreMasterSecret, TLSv1
.
.
我不确定那里发生了什么。我需要启用 jetty-ssl.xml 配置中的某些设置,以便它回复证书链?以下是我现在正在使用的选项
<Set name="KeyStore"><SystemProperty name="jetty.home" default="." />/server-certs/keyStore.jks</Set>
<Set name="KeyStorePassword">$PASS</Set>
<Set name="KeyManagerPassword">$PASS</Set>
<Set name="TrustStore"><SystemProperty name="jetty.home" default="." />/server-certs/trustStore.jks</Set>
<Set name="TrustStorePassword">$PASS</Set>
<Set name="certAlias">$CORRECT_ALIAS</Set>
<Set name="wantClientAuth">true</Set>
当我将客户端用作独立的 Java 应用程序(而不是部署在码头服务器上)时,我的 trustStore 和 keyStore 可以正常工作。当我启动 Jetty 服务器时,Jetty 正在正确读取 keyStore 和 trustStore。我还尝试在启动 Jetty 服务器时将 -Djavax.net.ssl.trustStore 等作为 jvm 选项。
【问题讨论】:
标签: ssl certificate jetty cxf x509certificate