我正在尝试在 WebSphere Liberty Profile 8.5.5.6 中启用 TLSv1.2。我有三个 WLP 服务器在集群/集体中运行。我有 TLSv1.2 用于处理到三个成员服务器以及 Controller 的传入 HTTPS 流量。没关系。
但是,当任何成员尝试与 Controller 通信以获取正常的集体内容时,它会失败,并且我在 Controller 上收到以下错误消息:
000000a3 com.ibm.ws.channel.ssl.internal.SSLHandshakeErrorTracker E
CWWKO0801E: Unable to initialize SSL connection.
Unauthorized access was denied or security settings have expired.
Exception is javax.net.ssl.SSLHandshakeException:
Client requested protocol TLSv1 not enabled or not supported
这是我的每台服务器中的内容,包括 Controller :
<sslDefault sslRef="defaultSslConfig" />
<ssl id="defaultSslConfig"
keyStoreRef="defaultKeyStore"
trustStoreRef="defaultTrustStore"
clientAuthenticationSupported="true"
sslProtocol="TLSv1.2" />
正如我所说,这对传入的 HTTPS 流量非常有效。但是我还需要为 Controller <-> 成员通信设置其他东西才能使用 TLSv1.2 吗?或者如果那里不支持它,我可以在某个地方关闭它以进行服务器间通信吗?
最佳答案
Controller 和成员有额外的 SSL 配置。要将他们的配置更新为 TLSv1.2,这就是我所做的:
- 在每个服务器的 server.xml 中(您已经有了第 1 部分,但为了完整起见,我再次包含它):
<ssl id="defaultSSLConfig" sslProtocol="TLSv1.2" keyStoreRef="defaultKeyStore" trustStoreRef="defaultTrustStore" clientAuthenticationSupported="true" /> <ssl id="controllerConnectionConfig" sslProtocol="TLSv1.2"/> <ssl id="memberConnectionConfig" sslProtocol="TLSv1.2"/>
- 在每个系统的 ${wlp.install.dir}/etc(您可能需要创建 etc 文件夹)中,创建一个包含以下内容的 server.env 文件:
JVM_ARGS=-Dhttps.protocols=TLSv1.2
关于ssl - 如何在 WebSphere Liberty 8.5.5.6 中启用 TLSv1.2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35300360/