如何在 Websphere 8.5.5.9 中为 mSSL 设置客户端证书?
How do you set a client side certificate in Websphere 8.5.5.9 for mSSL?
我有一个当前部署在 WAS 8.5.5.9 中的应用程序。此应用程序通过网络服务连接到另一台服务器,另一台服务器的主机要求我使用 TLS 1.2 并通过相互 SSL 连接进行连接。
我已经在我的 WAS 的信任库中成功导入了(其他)服务器的主机证书,但由于这是 mSSL 而不是常规的单向 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 [原始读取]:长度 = 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 [原始读取]:长度 = 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,读取:TLSv1.2 警报,长度 = 2
[11/28/16 20:57:15:836 CST] 000000e9 SystemOut O Thread-142,RECV TLSv1.2 警报:致命,handshake_failure
您可以使用 'Dynamic outbound endpoint' 功能将证书与到目标服务器的连接相关联。要设置动态出站端点,请参阅:Associating a Secure Sockets Layer configuration dynamically with an outbound protocol and remote secure endpoint.
连接信息的格式为*,hostname,port
。 select 现有 SSL 配置 (CellDefaultSSLSettings) 后,单击 'Get certificate aliases' 按钮。然后从下拉列表中 select 您的客户端证书。
这应该允许您正确执行相互身份验证。请注意,您的客户端证书也必须存在于目标服务器的信任库中。
我有一个当前部署在 WAS 8.5.5.9 中的应用程序。此应用程序通过网络服务连接到另一台服务器,另一台服务器的主机要求我使用 TLS 1.2 并通过相互 SSL 连接进行连接。
我已经在我的 WAS 的信任库中成功导入了(其他)服务器的主机证书,但由于这是 mSSL 而不是常规的单向 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 [原始读取]:长度 = 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 [原始读取]:长度 = 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,读取:TLSv1.2 警报,长度 = 2 [11/28/16 20:57:15:836 CST] 000000e9 SystemOut O Thread-142,RECV TLSv1.2 警报:致命,handshake_failure
您可以使用 'Dynamic outbound endpoint' 功能将证书与到目标服务器的连接相关联。要设置动态出站端点,请参阅:Associating a Secure Sockets Layer configuration dynamically with an outbound protocol and remote secure endpoint.
连接信息的格式为*,hostname,port
。 select 现有 SSL 配置 (CellDefaultSSLSettings) 后,单击 'Get certificate aliases' 按钮。然后从下拉列表中 select 您的客户端证书。
这应该允许您正确执行相互身份验证。请注意,您的客户端证书也必须存在于目标服务器的信任库中。