我正在尝试配置 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 原生库不是原因。