我主要关注此页:
http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html
我使用此命令创建密钥库
keytool -genkey -alias tomcat -keyalg RSA -keystore / etc / tomcat6 / keystore
并回答了提示
然后我编辑了我的server.xml文件并取消注释/编辑了这一行
<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>
当我尝试运行我的webapp时,我遇到了这个:
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中的日志文件什么也没说。我无法弄清楚这是我的密钥库文件,我的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" />
根据tomcat教程的建议将它自动配置为“APR”存在问题(不确定我是否有这个或如何找出我是否这样做)。但是我仍然遇到同样的错误。
答案 0 :(得分:5)
好吧,我是个白痴......
我的印象是netbeans正在为我重新启动我的服务器,因为eclipse曾经知道什么时候需要重启的文件被更改,它会为你重新启动服务器。显然netbeans没有这个功能。一旦我使用/etc/init.d/tomcat6中的脚本手动重启服务器,那么一切正常..
感谢您的帮助,无论如何,您的问题可以帮助我思考我可能遇到的其他问题。
答案 1 :(得分:1)
我刚刚在Ubuntu上使用vanilla Tomcat测试了相同的设置,并且:
server.xml
中的SSL连接器并指向我的密钥库web.xml
中添加了安全约束以强制使用SSL 访问https://localhost:8443/my-webapp只能在我的机器上运行(c)。
您是否使用正确的协议访问该应用程序,即https://
(请注意https
中的 s )?
顺便说一句,我建议在非SSL连接器中设置redirectPort=8443
属性,以便将http://localhost:8080/my-webapp重定向到https://localhost:8443/my-webapp。