我希望这是报告 Tomcat7 问题的正确地方(在 Java 项目下发布)。从 DVD 安装 12.3 很简单,下载 Tomcat7 并解压到 /opt,然后启动服务。它是无痛的,并且可以按预期工作。所以我做了测试**http://localhost:8080**
,没有问题,然后我通过自定义 server.xml 继续启用 https,然后使用 keytool 生成自签名证书并重新启动 tomcat7 服务。
对于您的参考,这是我使用的 keytool 命令和 server.xml 配置。
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)
请根据我的情况给我一些建议!非常感谢!