如何在Websphere 8.5.5.9中为mSSL设置客户端证书?

时间:2016-11-28 16:11:02

标签: java ssl websphere

我有一个当前部署在WAS 8.5.5.9中的应用程序。此应用程序通过webservice连接到另一台服务器,另一台服务器的主机要求我使用TLS 1.2和相互SSL连接进行连接。

我已经在我的WAS的信任库中成功导入了(其他)服务器的主机证书,但由于这是mSSL而不是常规的1路SSL,我还需要设置客户端证书以发送回其他服务器验证连接。

我该怎么做?我似乎无法在WAS管理控制台中找到任何选项,指定将客户端证书发送到mSSL的远程服务器。

需要考虑的一些要点:

  • 我已经在WAS的SSL配置中选择了TLSv1.2,它似乎正在运行
  • 客户端证书是由远程主机的所有者根据我们在IKEYMAN中完成的CSR创建提供给我的。
  • 我尝试在WAS信任和密钥库中导入客户端证书,但在尝试处理事务时仍然遇到handshake_failure异常。
  • 远程服务器端的TCP转储表示服务器在接收客户端证书时长度为0
  • 我身边的日志表明初始握手成功。 ClientHello和ServerHello消息推送。但最后我收到了这条消息(尽管它并没有说明多少):
[11/28/16 20:57:15:836 CST] 000000e9 SystemOut     O [Raw read]: length = 5
[11/28/16 20:57:15:836 CST] 000000e9 SystemOut     O 0000: 15 03 03 00 02                                     .....

[11/28/16 20:57:15:836 CST] 000000e9 SystemOut     O [Raw read]: length = 2
[11/28/16 20:57:15:836 CST] 000000e9 SystemOut     O 0000: 02 28                                              ..


[11/28/16 20:57:15:836 CST] 000000e9 SystemOut     O Thread-142, READ: TLSv1.2 Alert, length = 2
[11/28/16 20:57:15:836 CST] 000000e9 SystemOut     O Thread-142, RECV TLSv1.2 ALERT:  fatal, handshake_failure

1 个答案:

答案 0 :(得分:1)

您可以使用'动态出站端点'将证书与目标服务器的连接相关联的功能。要设置动态出站端点,请参阅:Associating a Secure Sockets Layer configuration dynamically with an outbound protocol and remote secure endpoint

连接信息的格式为*,hostname,port。选择现有的SSL配置(CellDefaultSSLSettings)后,单击“获取证书别名”#39;按钮。然后从下拉列表中选择您的客户端证书。

这应该允许您正确执行相互身份验证。请注意,客户端证书也必须存在于目标服务器的信任库中。