配置Tomcat以使用SSL

时间:2011-09-20 16:59:02

标签: java java-ee tomcat ssl https

我的第一个问题 - 是否可以在不使用数字证书的情况下使用https? 我的第二个问题 - 我在我的网络应用程序中保护了几页。所以添加了以下内容

<security-constraint>
    <web-resource-collection>
        ......
    </web-resource-collection>
    <auth-constraint>
        ......
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

我尝试运行该应用,并且未加载启用了ssl的页面。所以我继续创建证书。在server.xml中添加了以下内容?

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
       maxThreads="150" 
       scheme="https" 
       secure="true" 
       keystoreFile="C:\Program Files\apache-tomcat-7.0.11-windows-x86\apache-tomcat-7.0.11\.keystore" 
       keystorePass="johneipe"
       clientAuth="optional" 
       sslProtocol="TLS" />

我仍然无法访问这些网页,也无法访问https://localhost:8443

2 个答案:

答案 0 :(得分:9)

将您的协议更改为 protocol="org.apache.coyote.http11.Http11Protocol"

这将解决问题。

答案 1 :(得分:6)

您使用的是什么格式的密钥库?我相信Tomcat配置中的默认值是JKS,但如果您使用的是PKCS#12(.p12或.pfx扩展名),则需要指定该值。
请注意keystoreType =“PKCS12”。

<Connector port="1443"
           maxThreads="200"
           enableLookups="false" disableUploadTimeout="true"
           acceptCount="100" debug="0" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" SSLEnabled="true"
           keystoreFile="/opt/companyName/tomcat.keystore"
           keystoreType="PKCS12"
           keystorePass="password"
           ciphers="SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA"
           URIEncoding="UTF-8"
       />