【问题标题】:SSL on Tomcat 6.0Tomcat 6.0 上的 SSL
【发布时间】:2011-07-29 06:56:30
【问题描述】:

我整天都在尝试为 SSL 设置 Tomcat 6.0。我知道这不应该那么难。我按照 Tomcat 文档创建自己的证书,在 server.xml 文件中配置连接器。

当我转到https://localhost:8443 时,(8443 是我在连接器中定义的端口)我的证书没有呈现在屏幕上,我的浏览器告诉我它无法与服务器建立安全连接,并且我的客户可能没有证书。

我的问题是,为什么我的证书没有呈现给用户说“信任”或“不”?

【问题讨论】:

  • 你的证书买了吗?
  • 我没买。我自己使用 keytool 创建的...
  • 仅供参考,这是我的连接器在 server.xml 中的样子
  • 您的密钥库文件存储在哪里?另外,您使用的是什么操作系统?

标签: java tomcat ssl https


【解决方案1】:

关于 Tomcat 6 的 SSL Howto 有完整的文档。我不知道您在设置 SSL 以供我帮助您方面做了多远。

确保在server.xmlAPACHE_HOME/conf 中同时启用了用于端口8080 和8443 的Connector

【讨论】:

  • 检查。在我的情况下,默认端口是 8001,我的 ssl 端口是 8443。
  • 你的端口8001的连接器是什么样子的?
  • 是对的,我看不出问题出在哪里……日志说什么? APACHE_HOME/logs/
【解决方案2】:

apache-tomcat-6.xxx\bin\ 文件夹中是否有一个 tcnative-1.dll 文件?

如果是这样,它将不适用于您当前的 <Connector/> 配置。删除文件或重命名扩展名,然后重新启动 tomcat 服务器。

这在http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html 的“编辑 Tomcat 配置文件”部分中有说明

【讨论】:

    【解决方案3】:

    我终于弄明白了。

    问题与我的连接器中的协议变量有关:

    这就是我所拥有的:protocol="HTTP/1.1"

    现在我有了这个:protocol="org.apache.coyote.http11.Http11Protocol"

    现在唯一的问题是 chrome 或 IE 不会将站点作为 HTTPS 运行,因为我自己签署了证书并且不是 CA。

    【讨论】:

    • 您可以将您的自签名证书导入浏览器,并将其标记为可信证书。在 Chrome 中:Preferences > Under the Hood > Security > Manage Certificates In IE see support.microsoft.com/kb/179380。在 Google 上搜索更多详细信息或其他浏览器。
    • 当我尝试导入我的证书时,我被要求浏览证书文件。我不知道这是哪里。我知道的唯一文件是我个人资料中的 .keystore 文件。
    • 您可以从您的密钥库文件 (.keystore) 中导出您的证书。这是一个示例:keytool -storepass my-keystore-password -alias myalias -exportcert -file outfilename.cer。您可以添加 -rfc 参数以将证书导出为文本(base-64 编码)。有关更多信息,请参阅 keytool 文档:download.oracle.com/javase/6/docs/technotes/tools/solaris/…
    猜你喜欢
    • 2011-03-06
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 2016-10-18
    • 2017-12-15
    相关资源
    最近更新 更多