首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级AWS弹性豆柄平台版本后的handshake_failure

升级AWS弹性豆柄平台版本后的handshake_failure
EN

Stack Overflow用户
提问于 2019-08-20 05:27:34
回答 1查看 247关注 0票数 1

我有一个AWS弹性豆柄环境,其目前的平台是Tomcat 8 with Java 8 running on 64bit Amazon Linux/2.7.7

我发现在升级到Tomcat 8 with Java 8 running on 64bit Amazon Linux/2.8.0之后,上面的程序开始显示javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure错误。

下面是错误堆栈跟踪的一部分:

代码语言:javascript
复制
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2020)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1127)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1570)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:268)
at com.bionime.util.notice.sms.MitakeUtil.sendMessage(MitakeUtil.java:94)
at com.bionime.util.notice.sms.MitakeUtil.sendMessage(MitakeUtil.java:132)
...

我发现Tomcat 8 with Java 8 running on 64bit Amazon Linux/2.7.7上的JVM版本是1.8.0_161-b14Tomcat 8 with Java 8 running on 64bit Amazon Linux/2.8.0上的JVM版本是1.8.0_171-b10

这两个平台上的tomcat版本都是Apache Tomcat/8.0.50

所以我猜是JVM版本导致了错误。

在阅读了JDK 8u171更新发行说明之后,我发现3DES Cipher Suites1.8.0_171-b11中是禁用的。我猜handshake_failure是由3 3DES密码套件被禁用引起的。

我能做些什么来避免avax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure on Tomcat 8 with Java 8 running on 64bit Amazon Linux/2.8.0

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-20 05:53:35

通过从3DES_EDE_CBC文件中的jdk.tls.disabledAlgorithms列表中删除/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-7.b10.37.amzn1.x86_64/jre/lib/security/java.security,并重新启动弹性豆柄应用程序,可以解决这个问题。

此操作重新启用对3 3DES密码套件的支持。

我是从这个文章得到这个信息的。

为了修改弹性豆柄中的jdk.tls.disabledAlgorithms列表,我在.ebextensions fodler下面创建了一个名为java-security.config的文件,其内容如下:

代码语言:javascript
复制
# Create a file named java-security under /usr/share/tomcat8/conf to override the default value of jdk.tls.disabledAlgorithms
files: 
  "/usr/share/tomcat8/conf/java-security" :
    mode: "000755"
    owner: tomcat
    group: tomcat
    content: |
      jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024, EC keySize < 224, DES40_CBC, RC4_40

这将覆盖jdk.tls.disabledAlgorithms的默认值,从而启用3 3DES密码套件。

然后我去了弹性豆茎环境

->配置

->软件

->环境特性

->类型java.security.properties表示名称,/usr/java.security.properties/tomcat8 8/conf/java-值的安全性。

->重启tomcat。

在上述操作之后,jdk.tls.disabledAlgorithms的值将持久化在由弹性豆柄启动的不同EC2s中。

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

https://stackoverflow.com/questions/57567158

复制
相关文章

相似问题

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