【问题标题】:javax.net.ssl.SSLHandshakeException: No appropriate protocoljavax.net.ssl.SSLHandshakeException:没有适当的协议
【发布时间】:2017-04-27 08:58:52
【问题描述】:

我已经用 java 1.8 安装了 tomcat 8(ssl support)。 当启动tomcat catalina out write

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at sun.security.ssl.Handshaker.activate(Handshaker.java:503)
at sun.security.ssl.SSLEngineImpl.kickstartHandshake(SSLEngineImpl.java:729)
at sun.security.ssl.SSLEngineImpl.beginHandshake(SSLEngineImpl.java:756)
at org.apache.tomcat.util.net.SecureNioChannel.reset(SecureNioChannel.java:94)
at org.apache.tomcat.util.net.SecureNioChannel.<init>(SecureNioChannel.java:76)
at org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:544)
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:697)
at java.lang.Thread.run(Thread.java:745)

还有这个

12-Dec-2016 14:12:37.297 WARNING [main] org.apache.tomcat.util.net.jsse.JSSESocketFactory.getEnableableProtocols None of the SSL protocols specified are supported by the SSL engine : [TLSv1+TLSv1.1+TLSv1.2]

旧版本的tomcat和java不会出现错误。

我的 server.xml 配置

    <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="700" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1+TLSv1.1+TLSv1.2"
keystoreFile="/var/lib/tomcat8/keystore" keystorePass="********" keystoreType="JKS"
keyAlias="tomcat"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_CBC_SHA,
TLS_RSA_EXPORT1024_WITH_RC4_56_MD5,
TLS_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA256,
TLS_RSA_WITH_RC4_128_MD5,
TLS_RSA_WITH_RC4_128_SHA,
TLS_RSA_WITH_DES_CBC_SHA,
TLS_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA"
/>

可能是什么问题? 谢谢

【问题讨论】:

  • TLSv1+TLSv1.1+TLSv1.2 应该是 TLSv1,TLSv1.1,TLSv1.2。是错字吗?如果是,可能您设置的密码套件在服务器中没有对应关系

标签: ssl java-8 tomcat8


【解决方案1】:

Apache Tomcat 8 Configuration ReferencesslEnabledProtocols应该代表

支持 HTTPS 连接的 SSL 协议的逗号分隔列表。

Apache Tomcat 8 - Security Considerations文档有一个例子说明了这个参数的正确用法—— sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"。您错误地指定使用 + 而不是 , -- TLSv1+TLSv1.1+TLSv1.2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-05
    • 2019-06-20
    • 1970-01-01
    • 2021-08-26
    • 2021-09-27
    • 2021-10-21
    • 2021-05-02
    相关资源
    最近更新 更多