【发布时间】:2019-12-13 00:25:51
【问题描述】:
我们正在尝试在 WSO2 BPS 中将 TLS 1.0 升级到 TLS 1.2 版本。使用此链接Reference Link From WSO2 升级 TLS 最新版本的步骤如下,我们的 JAVA 应用程序正在 JDK 1.8 中运行。
打开
<PRODUCT_HOME>/repository/conf/tomcat/catalina-server.xml文件。删除了 sslProtocol="TLS" 属性并将其替换为 sslEnabledProtocols="TLSv1.2" 如下图。
> <Connector SSLEnabled="true" port="9443" > protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" > secure="true" server="WSO2 Carbon Server" > sslEnabledProtocols="TLSv1.2" > svns:secretAlias="Server.Service.Connector.keystorePass"/>
- 启动服务器。
- 为了验证配置是否全部设置正确,我们执行以下命令,
java -jar TestSSLServer.jar localhost 9443并仅以 TLSv1.2 获取 TLS 配置响应,
Supported versions: TLSv1.2 Deflate compression: no Supported cipher suites (ORDER IS NOT SIGNIFICANT): TLSv1.2 DHE_RSA_WITH_AES_128_CBC_SHA DHE_RSA_WITH_AES_256_CBC_SHA DHE_RSA_WITH_AES_128_CBC_SHA256 DHE_RSA_WITH_AES_256_CBC_SHA256 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ---------------------- Server certificate(s): 501fc1432d87155dc431382aeb843ed558ad61b1: CN=localhost, O=WSO2, L=Mountain View, ST=CA, C=US ---------------------- Minimal encryption strength: strong encryption (96-bit or more) Achievable encryption strength: strong encryption (96-bit or more) BEAST status: protected CRIME status: protected
更新:
我们已按照@user7294900 指令更改了jre/lib/security/java.security。
当我们在那个 java.security 文件中设置配置时,我们在 wso2BPMN 中遇到了这个错误消息。但是我们可以通过握手失败通知在 Wireshark 捕获中查看 TLS 版本 1.2。
Wso2BPMN,
Caused by: org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.office365.com:587
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1398)
at org.apache.commons.mail.Email.send(Email.java:1423)
at org.activiti.engine.impl.bpmn.behavior.MailActivityBehavior.execute(MailActivityBehavior.java:102)
... 192 more
Caused by: javax.mail.MessagingException: Can't send command to SMTP host;
nested exception is:
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:1420)
at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:1408)
at com.sun.mail.smtp.SMTPTransport.ehlo(SMTPTransport.java:847)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:384)
at javax.mail.Service.connect(Service.java:297)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1388)
... 194 more
那么,TLSv1.2版本升级需要什么配置吗?
【问题讨论】:
-
这个 Change Cipher Spec 消息是从客户端还是服务器发送的?两者都应该发送一个,这可能只是客户端表明它能够使用 TLS 1.0(只是基于快速阅读 TLS 1.2 RFC 的猜测,所以我可能会离开)。
-
@JoachimSauer 这是从客户端还是服务器发送的 Change Cipher Spec 消息?它是客户端。我们需要对此进行澄清。
标签: java ssl wso2 tls1.2 wso2bps