2010-04-12 174 views
8

我主要是下面这个页面:设置SSL(自签名证书)和Tomcat

http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

我用这个命令来创建密钥库

的keytool -genkey -alias tomcat的-keyalg RSA - 密钥存储在/ etc/tomcat6中/密钥库

,并回答提示

然后我修改了server.xml文件,并取消注释/编辑李本NE

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
      maxThreads="150" scheme="https" secure="true" 
      clientAuth="false" sslProtocol="TLS" 
      keystoreFile="/etc/tomcat6/keystore" 
      keystorePass="tomcat" /> 

然后我去到web.xml文件中为我的项目,并添加到该文件

 <security-constraint> 
      <web-resource-collection> 
        <web-resource-name>Security</web-resource-name> 
        <url-pattern>/*</url-pattern> 
      </web-resource-collection> 
      <user-data-constraint> 
        <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
      </user-data-constraint> 
    </security-constraint> 

这个当我尝试运行我的web应用程序,我遇到了这一点:

Unable to connect 

Firefox can't establish a connection to the server at localhost:8443. 

* The site could be temporarily unavailable or too busy. Try again in a few 
     moments. 

* If you are unable to load any pages, check your computer's network 
     connection. 

如果我注释掉我添加到我的web.xml文件中的行,webapp可以正常工作。我在/ var/lib/tomcat6/logs中的日志文件什么也没说。我无法弄清楚这是否是我的keystore文件,我的server.xml文件或我的web.xml文件的问题....任何帮助表示赞赏

我在Ubuntu上使用tomcat 6。

编辑:我改变了我的server.xml中

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" 
      maxThreads="150" scheme="https" secure="true" 
      clientAuth="false" sslProtocol="TLS" 
      keystoreFile="/etc/tomcat6/keystore" 
      keystorePass="tomcat" /> 

柜面有它被自动配置为“APR”的建议由tomcat的教程(不知道一个问题,如果我有一个或如何找到如果我这样做)。不过,我仍然得到相同的错误。

+0

现在不要添加安全约束。首先让SSL部分工作。 – 2010-04-12 05:00:59

+0

我删除了安全限制,没有什么改变,但我会离开它,直到SSL正常工作。顺便说一句,这里是我的整个server.xml文件的pastebin,以防万一有所帮助..除了当我取消注释SSL部分.. http://pastebin.com/yVRiNHi7 – Danny 2010-04-12 05:57:38

回答

5

好吧,我是个白痴......

我是NetBeans的是重新启动我的服务器我的印象,因为Eclipse用来了解什么时候需要重新启动该文件被改变,它会重新启动服务器为你。显然netbeans没有这个功能。一旦我使用/ etc/init脚本手动重新启动服务器。d/tomcat6然后一切正常..

无论如何感谢您的帮助pascal,你的问题帮助我考虑我可能会遇到什么其他问题。

+0

你帮我理解了如何在tomcat上配置它,谢谢:) – ufk 2011-10-11 13:15:35

1

我只是测试相同的设置与香草的Tomcat Ubuntu和:

  • 我生成一个密钥
  • 我注释掉的SSL连接器server.xml,并指出我的密钥库
  • 我增加了安全性在我-web应用的web.xml约束强制使用SSL

和访问https://localhost:8443/my-webapp只是工作在我的机器(C)上。

是否使用即正确的协议https://(注意小号https)访问应用程序?

顺便说一句,我会建议在非SSL连接器中设置redirectPort=8443属性,以便http://localhost:8080/my-webapp被重定向到https://localhost:8443/my-webapp

+0

是的,我用https和端口8443. – Danny 2010-04-12 04:54:10

+0

@Danny任何防火墙运行? – 2010-04-12 04:58:28

+0

@Danny我会稍后使用Tomcat的打包版本来尝试。 – 2010-04-12 05:09:50