首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个WebApps之间的SSL握手

两个WebApps之间的SSL握手
EN

Stack Overflow用户
提问于 2011-09-13 02:51:34
回答 1查看 1.7K关注 0票数 0

我在SUNWappserver上部署了一个webapp-1,它需要双向SSL身份验证。我可以为它写一个java client-1,它工作得很好。

但是,当我为webapp-1编写一个客户端作为webservice (而不是独立的java程序)时,我遇到了问题。

我正在jetty-8服务器上部署client-2。在SSL握手期间,Jetty首先从SUNWappserver获得证书(这是可以的:找到受信任的证书),然后Jetty从SUNWappserver接收CertificateRequest (以及证书颁发机构)。但是,Jetty随后只回复一个空的证书链。

代码语言:javascript
复制
.
.
*** CertificateRequest
Cert Types: RSA, DSS
Cert Authorities:
****<CNs removed from here>****
*** ServerHelloDone
*** Certificate chain
***
*** ClientKeyExchange, RSA PreMasterSecret, TLSv1
.
.

我不知道那里发生了什么。jetty-ssl.xml配置中是否有我需要启用的设置,以便它使用证书链进行回复?下面是我现在正在使用的选项

代码语言:javascript
复制
<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应用程序(而不是部署在jetty服务器上)时,我的trustStore和keyStore工作得很好。当我启动Jetty服务器时,Jetty正确地读取了keyStore和trustStore。在启动Jetty服务器时,我还尝试将-Djavax.net.ssl.trustStore等作为jvm选项。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-15 03:56:19

刚刚搞清楚是怎么回事。我在jetty服务器上部署的客户机是一个cxf客户机。结果证明,除了在jetty-ssl.xml中设置keyStore和trustStore之外,我还需要为cxf设置它(在java代码中或使用cxf.xml)

否则,客户端(部署在jetty服务器上)不会发出任何错误消息(例如,cxf keyStore未找到等)。只是把空白的证书链发回SUNWappserver。某种类型的消息将有助于找出原因。

需要注意的是,我们还应该在jetty-ssl.xml中设置以下内容。

代码语言:javascript
复制
<Set name="needClientAuth">true</Set> 

否则,即使客户端(连接到jetty服务器)向jetty服务器发送错误证书的空白,服务器也会忽略,不会给出任何错误消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7392495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档