在tomcat 7.0中发出问题以配置tomcat以支持ssl

时间:2012-05-11 05:31:32

标签: tomcat ssl

在tomcat中支持ssl ....我创建了一个Keystore文件。包含自签名证书.....然后打开tomcat 7.0的server.xml文件并在server.xml中找到此代码

`     <!-- Define a SSL HTTP/1.1 Connector on port 8443
     This connector uses the JSSE configuration, when using APR, the
     connector should be using the OpenSSL style configuration
     described in the APR documentation -->

     <!-- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" /> -->    ` 

并从连接器中删除评论,并在未注释的连接器代码中输入 KeystoreFile 条目和 KeystorePass 条目,如下所示.........

`    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
      maxThreads="150" scheme="https" secure="true"
      clientAuth="false" sslProtocol="TLS" **keystoreFile**="d:\cpademo.keystore"
     **keystorePass**="cpademo"/>      `

The above code works in tomcat 6.0...and allow https connection with tomcat but i get the error in tomcat 7.0 log file which indicate that it does not suppoert connection to https 8443 connection. Error in log file is following as.....

ERROR:

SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-ap
r-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:484)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:554)

请帮助我解决这个问题。 Thanx提前

2 个答案:

答案 0 :(得分:17)

您正在使用APR /本机连接器以及JSSE连接器(BIO和NIO)的SSL配置。最简单的解决方法是在server.xml中注释掉APR生命周期监听器。

答案 1 :(得分:9)

您必须从

更改protocol
protocol="HTTP/1.1"

protocol="org.apache.coyote.http11.Http11NioProtocol"

这是一篇好文章 http://java.dzone.com/articles/setting-ssl-tomcat-5-minutes

mkyong的文章已经过时,缺乏我上面提出的改变。