【问题标题】:Setup SSL (self signed cert) with tomcat使用 tomcat 设置 SSL(自签名证书)
【发布时间】:2011-02-06 20:49:38
【问题描述】:

我主要关注这个页面:

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>

当我尝试运行我的 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 中的日志文件什么也没说。我不知道这是否是我的密钥库文件、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”时出现问题(不确定我是否有这个问题或如何找出是否有)。但是我仍然遇到同样的错误。

【问题讨论】:

  • 暂时不要添加安全约束。首先让 SSL 部分工作。
  • 我删除了安全约束,没有任何改变,但我会在 SSL 正常工作之前将其关闭。顺便说一句,这里是我的整个 server.xml 文件的 pastebin,以防万一有帮助。它没有变化,除非我取消注释 SSL 部分。pastebin.com/yVRiNHi7

标签: ssl ubuntu ssl-certificate tomcat6


【解决方案1】:

好吧,我是个白痴……

我的印象是 netbeans 正在为我重新启动服务器,因为 eclipse 过去知道需要重新启动的文件何时更改,它会为您重新启动服务器。显然netbeans没有那个功能。一旦我使用 /etc/init.d/tomcat6 上的脚本手动重新启动服务器,那么一切正常..

无论如何,谢谢你的帮助,帕斯卡,你的问题帮助我思考我可能遇到的其他问题。

【讨论】:

  • 您帮助我了解了如何在 tomcat 上进行配置,非常感谢 :)
【解决方案2】:

我刚刚在 Ubuntu 上使用原版 Tomcat 测试了相同的设置,并且:

  • 我生成了一个密钥库
  • 我在 server.xml 中取消了 SSL 连接器的注释并指向我的密钥库
  • 我在my-webapp的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

【讨论】:

  • @Danny 我稍后会尝试使用 Tomcat 的打包版本。
  • 没有防火墙运行。我安装的所有软件都是通过突触包管理器安装的。我认为问题在于某处根据我已安装的某些不典型安装的软件包选择了自动设置。我不知道那可能是什么。 (顺便说一句,看看我在底部的原始帖子中的编辑)
  • 新浏览器默认不显示协议,所以 https 让我明白了。谢谢提醒。
猜你喜欢
  • 2020-10-25
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-21
  • 2020-05-17
  • 1970-01-01
  • 2010-11-13
  • 1970-01-01
相关资源
最近更新 更多