it-swarm.com.ru

SSL не работает для Tomcat 8

Я пытаюсь настроить SSL (https) для Tomcat 8 и сделал следующие шаги, но по-прежнему не работает

1) Создайте файл хранилища ключей, используя

keytool -genkey -alias myservername -keyalg RSA

2) генерируется CSR, как показано ниже

keytool -certreq -alias myservername -file C:\Tomcat_ssl\local_machine\test.csr -keystore C:\Tomcat_ssl\local_machine\test.keystore

3) Затем мы сгенерировали сертификат, а затем импортировали сертификат цепи и сертификат, как показано ниже

keytool -import -alias root -keystore C:\Tomcat_ssl\local_machine\test.keystore -trustcacerts -file C:\Tomcat_ssl\local_machine\srv_chain.cer

keytool -import -alias myservername -keystore C:\Tomcat_ssl\local_machine\test.keystore -file C:\Tomcat_ssl\local_machine\srv_main.cer

4) Наконец-то внесены изменения в Tomcat server.xml, как показано ниже

<Connector port="443" protocol="org.Apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="C:\Tomcat_ssl\local_machine\test.keystore" keystorePass="123" keystoreAlias="myservername"/>

Перезапустил Tomcat и он не работает и показывает экран ниже

 Error when accessing Tomcat https

В журналах Tomcat он не показывает никаких ошибок, а также я пробовал другие варианты, такие как сохранение тега cipher в соединении, Enabled TLS 1,2,3, изменение порта https и т.д. Безрезультатно.

Также я проверил порт 443 https, и он показывает, как прослушивание, когда я netstat. Любая идея, почему это не работает

Добавлены логи после включения отладки ssl в Tomcat

http-nio-443-exec-5, fatal error: 10: General SSLEngine problem
javax.net.ssl.SSLHandshakeException: SSLv2Hello is disabled
http-nio-443-exec-5, SEND TLSv1.2 ALERT:  fatal, description = unexpected_message
http-nio-443-exec-5, WRITE: TLSv1.2 Alert, length = 2
http-nio-443-exec-5, fatal: engine already closed.  Rethrowing javax.net.ssl.SSLHandshakeException: SSLv2Hello is disabled
http-nio-443-exec-5, called closeOutbound()
http-nio-443-exec-5, closeOutboundInternal()
[Raw write]: length = 7
10
JavaGeek

Поскольку вы используете Java 8, то по умолчанию будет TLS 1.2

Посмотрев на скриншот, клиентский TLS не включен в вашем IE 11. По умолчанию IE 11 включен SSL 3.0, TLS 1.0, 1.1, 1.2.

Если вы видите протоколы матрица, вы поймете, почему соединение не удалось. 

Таким образом, обновите настройки IE 11 SSL TLS или попробуйте использовать другой браузер для проверки.

4
Rishikesh Darandale

У меня была такая же проблема давным-давно.

Mi решение было (шаги, которые я следую здесь, зависит от инструкций CA, у сайта CA обычно есть полные инструкции о том, как генерировать сертификат правильно):

  1. Создайте сертификат еще раз, но с помощью следующих команд (размер ключа 2048) (убедитесь, что имя и фамилия совпадают с примером вашего сайта: yourhost.com:

keytool -genkey -alias yourhost.com -keyalg RSA -keysize 2048 -keystore servername.jks

  1. Genearate de csr

keytool -certreq -alias yourhost.com -file mycsr.txt -keystore servername.jks

  1. Установить сертификат

keytool -import -trustcacerts -alias yourhost.com -file file-from-your-ca.p7b -keystore servername.jks

В соединителе server.xml поместите следующую конфигурацию (примечание: возможные значения sslProtocol зависят от используемой вами jvm, см. Возможные значения для Java 8 значения Java 8 ssl )

<Connector port="443" protocol="org.Apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false"  keystoreFile="/home/myserver/ssl/servername.jks" keystorePass="yourpass" keystoreAlias="yourhost.com" sslProtocol="TLSv1.2"  />

Перезапустите Tomcat

Есть еще примеры того, как настроить безопасный соединитель на этом сайте: Secure Tomcat

3
Daniel C.

В настоящее время я сталкиваюсь с подобной проблемой, и у меня возникло сильное подозрение, что наша проблема как-то связана с конфигурацией Tomcat в server.xml . Я тоже, я вижу службу, слушающую порт, и не много полезных сообщений в любых файлах журнала. 

Мне сказал коллега, который (безопасный Tomcat с SSL) запустился, чтобы войти 

   <Connector port="443" scheme="https" server="Secure Web Server"
              minSpareThreads="25" allowTrace="false" keystoreType="JKS"
              keystoreFile="C:\Tomcat\conf\aSecureTomcat.jks" keystorePass="yourPassword"  
              connectionTimeout="20000"
              protocol="org.Apache.coyote.http11.Http11NioProtocol" 
              secure="true" clientAuth="false" sslProtocol="TLS" 
              sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" 
              useServerCipherSuitesOrder="true" 
              ciphers="TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"/> 

Я еще не определил минимальную конфигурацию, но важной частью для вас могут быть последние 5 строк моего фрагмента кода. Как выглядит ваш конфиг Tomcat?

0
B--rian

Просто измените свой оригинальный server.xml: sslProtocol = TLSv1.2 Включите номер версии. Была такая же ошибка раньше.

0
senadorbarrago

Tomcat может использовать две разные реализации SSL:

реализация JSSE, предоставляемая как часть среды выполнения Java (начиная с версии 1.4) реализация APR, которая по умолчанию использует механизм OpenSSL . Точные параметры конфигурации зависят от используемой реализации. Если вы настроили Connector, указав общий протокол = "HTTP/1.1", тогда реализация, используемая Tomcat, выбирается автоматически. Если при установке используется APR, т. Е. Вы установили собственную библиотеку Tomcat, то она будет использовать реализацию APR SSL, в противном случае она будет использовать реализацию Java JSSE.

Пожалуйста, обратитесь к https://Tomcat.Apache.org/Tomcat-8.0-doc/ssl-howto.html для всех деталей для конфигурации. Я просто следую инструкциям, и это работает для меня. 

Самое главное, Вы уверены, что у вас есть проблема в вашем Tomcat. Ваша ошибка может исходить из вашего браузера. 

  • Вы пробовали другие браузеры, кроме IE? 
  • Какую версию IE вы используете? 
  • Windows 7 или Windows 8?

Если вы столкнулись с проблемой только в IE, проверьте также SSL 2.0 и SSL 3.0 в разделе «Дополнительные настройки» вместе с рекомендуемым исправлением включения TLS 1.0, TLS 1.1 и TLS 1.2.

0
Kambiz