我正在尝试将 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 包我不知道为什么它没有检测到它。
看起来您没有配置错误。但是,您可能需要在 URL 中明确指定协议以及端口,例如。
https://your.server:8443
. 如果端口不是 443 且未指定 HTTPS,则大多数应用程序(浏览器等)将推断为 HTTP。也尝试在浏览器的 URL 中明确指定
http://
,看看它是否呈现。不过,我会感到惊讶;看起来您已正确启用 TLS。缺少tomcat本机库不是原因。