无法使用Tomcat 7配置SSL

时间:2014-03-26 15:27:06

标签: java ssl tomcat7

我正在尝试使用Tomcat 7配置SSL,但无法执行此操作。请指导。

用于生成SSL证书的命令:

C:\Java\jdk1.7.0_40\bin>keytool -genkeypair -alias tomcat-keystore -keyalg RSA -keystore C:\my.keystore

的server.xml

<Connector port="8443" maxThreads="150" scheme="https" secure="true" SSLEnabled="true" 
    keystoreFile="C:\my.keystore" keystorePass="abc" 
    clientAuth="false" keyAlias="tomcat-keystore" sslProtocol="TLS"/>

问题在于,如果我将https://wwww.secdevapp.net:8443设置为浏览器说&#34;网页不可用&#34;我在catalina.log文件中看到了错误(如下所述),但http://www.secdevapp.net:8080工作正常。

Tomcat错误日志:

Mar 26, 2014 11:22:04 AM org.apache.catalina.core.StandardService initInternal
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-8443]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8443]]
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
    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:813)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:638)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
    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:606)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:980)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    ... 12 more
Caused by: java.lang.Exception: Connector attribute SSLCertificateFile must be defined when using SSL with APR
    at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:467)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:640)
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
    ... 13 more

2 个答案:

答案 0 :(得分:4)

注释掉server.xml中的APR监听器:27可以解决Windows操作系统中的问题。 找到http://java.dzone.com/articles/ssl-your-tomcat-7

的解决方案

APR是您可以在Tomcat安装期间安装的本机库。它确实将您的Tomcat绑定到您的操作系统,但是提供了出色的可扩展性和性能#34;这对您的生产环境来说是一件好事。在其他环境中,我不明白这一点。

答案 1 :(得分:0)

  • 检查服务器上的端口。是tomcat / java实际上是在监听 8443号港口?
  • 检查tomcat日志,通常在tomcat / logs目录中。是什么 访问日志说?
  • 使用该连接器后是否重启了tomcat?是什么 catalina.log说?