Ошибка при попытке включить Tomcat7 HTTPS в OpenSUSE 12.3
Я надеюсь, что это правильное место, чтобы сообщить о проблеме с Tomcat7 (опубликовано в рамках проекта Java). Простая установка 12.3 только с DVD, загрузите Tomcat7 и распакуйте его в /opt, затем запустите службу. Это безболезненно и просто работает, как ожидалось. Итак, я сделал тест на **http://localhost:8080**
Нет проблем, тогда я перехожу к включению https, настраивая server.xml, затем использую keytool для генерации сертификатов самоподписки и перезапускаю службу tomcat7.
Для вашей ссылки это команда keytool, которую я использовал, и config.xml config.
keytool -genkeypair -keyalg RSA -alias tomcat -keystore testkey
-validity 999 -keysize 2048
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="200" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/usr/share/tomcat7/webapps/testkey"
keystorePass="testme" />
Глядя на catalina.out, здесь ошибка.
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-apr-8443"]
java.lang.Exception: Connector attribute SSLCertificateFile must be defined when using SSL with APR
at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:472)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:498)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:369)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:909)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:781)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:573)
at org.apache.catalina.startup.Catalina.load(Catalina.java:596)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
Пожалуйста, дайте мне несколько советов для моей ситуации! Спасибо большое!
1 ответ
Чтобы решить эту проблему, просто закомментируйте строку, которая определяет слушателя APR. В вашем "server.xml" просто закомментируйте эту строку:
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
Теперь он должен работать нормально и будет жаловаться на ненадежный сертификат (если вы сохранили сертификат в браузерах cert.db (firefox).