Tomcat 7 не отвечает, когда я включаю SSL (без SSL-рукопожатия)
У меня вопрос: почему tomcat не отвечает, когда я включаю SSL?
Я попытался перенести работающее веб-приложение tomcat7 с сервера Ubuntu 12.10 x64 на новый сервер Ubuntu 14.04 x64. Были предприняты все попытки сохранить одинаковую конфигурацию между двумя машинами.
На порту 80 все работало отлично. Когда я редактирую файл server.xml, чтобы включить SSL-коннектор, я прекращаю получать ответы от сервера. Я могу открыть соединение, но оно просто висит там. Например, я могу подключиться к порту 443 через telnet и отправить команду "GET /", но ответа нет. Сервер не пытается установить SSL-квитирование.
В catalina.out нет ошибок, на самом деле я вижу сообщение об успешной обработке обработчика протокола SSL:
Feb 13, 2015 10:28:49 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-443"]
Я подтвердил, что файл хранилища ключей действителен, перечислив содержимое с помощью команды keytool. Хранилище ключей - это просто копия со старого сервера, поэтому я не ожидаю проблем с сертификатами или чего-то еще. Права доступа к файлам в хранилище ключей не должны быть проблемой, я даже попробовал chmod 777 на нем, и никаких изменений в поведении нет.
Вот мой Коннектор для server.xml. И снова server.xml - это точная копия с предыдущего сервера Ubuntu 12, поэтому я думаю, что проблема кроется где-то еще.
<Connector port="443" SSLEnabled="true" protocol="HTTP/1.1"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/var/lib/mywebapp/mywebapp.keystore"
keystorePass="xxxxxxxx"/>
Я попытался явно установить протокол здесь, и я попробовал все три доступные значения:
org.apache.coyote.http11.Http11Protocol - тот же результат
org.apache.coyote.http11.Http11NioProtocol - тот же результат
org.apache.coyote.http11.Http11AprProtocol - исключение, что APR/ собственная библиотека недоступна
информация о версии кота:
Using CATALINA_BASE: /usr/share/tomcat7
Using CATALINA_HOME: /usr/share/tomcat7
Using CATALINA_TMPDIR: /usr/share/tomcat7/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.52 (Ubuntu)
Server built: Jul 24 2014 08:38:51
Server number: 7.0.52.0
OS Name: Linux
OS Version: 3.13.0-37-generic
Architecture: amd64
JVM Version: 1.7.0_71-b14
JVM Vendor: Oracle Corporation
1 ответ
Проблема в том, что Tomcat ждет энтропии. Чтобы решить эту проблему, добавьте следующий параметр в JVM:
-Djava.security.egd=file:/dev/./urandom