javax.net.ssl.SSLHandshakeException: нет соответствующего протокола
У меня установлен Tomcat 8(поддержка SSL) с Java 1.8. Когда начнете кота Каталины написать
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"
/>
В чем может быть проблема? Спасибо
1 ответ
Решение
Из справочника по настройке Apache Tomcat 8sslEnabledProtocols
должен представлять
Разделенный запятыми список протоколов SSL для поддержки соединений HTTPS.
В документе Apache Tomcat 8 - соображения безопасности есть пример, указывающий правильное использование этого параметра -sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2"
, Вы неправильно указали это для использования +
вместо ,
- TLSv1+TLSv1.1+TLSv1.2
,