更新

更新

我正在尝试配置 tomcat 以运行 https 端口 8443。

使用 tomcat 7。

我使用以下参数启用了 https 连接器:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" keystorePass="<pass>"
           maxThreads="150" scheme="https" secure="true" keystoreFile="${catalina.base}/foo/bar.keystore"
           clientAuth="false" sslProtocol="TLS" />

我创建了一个包含所需密码和域的密钥库。

当我启动 tomcat 并使用端口 8443 浏览管理面板或 jsp 页面时,我得到了混乱的未识别数据。这意味着我获得了通过 http 传递的 https 加密数据。当我在端口 8080 上浏览时,我可以正常看到它。我错过了什么?

谢谢你!

克菲尔

更新

我在 server.xml 中有这个配置

  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

我在日志中有这样的内容:

May 02, 2013 5:57:45 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/package

所以这也许就是问题所在。

这只是一个信息,所以我忽略了它。但也许是因为缺少 APR,SSLEngine 无法工作。

我有 gentoo linux 并且安装了 APR 包但我不知道为什么它检测不到它。

答案1

看起来您没有配置错误。但是,您可能需要在 URL 中明确指定协议以及端口,例如。https://your.server:8443如果端口不是 443 且未指定 HTTPS,大多数应用程序(浏览器等)都会推断为 HTTP。

尝试http://在浏览器中明确指定 URL,看看它是否能呈现。不过,我会感到惊讶;看起来您已经正确启用了 TLS。

缺少 tomcat 原生库不是原因。

相关内容