我的 Tomcat8 在端口 8080 上运行良好,但现在我尝试在 8443 中启用 https,尽管日志看起来很好,但它不起作用(现在即使在没有 https 的 8080 中也不起作用)。
我的系统是 Ubuntu 17.10,我正在使用 Tomcat 8.5.21
我做了什么:
获取 Let's Encrypt 证书(它在我的 Apache 中运行良好)并创建 JKS 密钥库。
更新了我的
server.xml
连接器:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLSv1.2" keyAlias="tomcat" keystoreType="JKS" keystoreFile="/etc/letsencrypt/live/sydomain/MyDSKeyStore.jks" keystorePass="mypassword" />
安装 APR 并确保它
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
存在于我的系统中server.xml
(日志中有关 APR 的警告消失了)修复了错误说无法恢复密钥通过制作我的 Keystore 和 Key 密码相同。
重新启动了 tomcat8 服务(也尝试重新启动服务器)。
我的catalina.out
一个start
过程显示:
2018 年 1 月 22 日 10:32:53.795 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本:Apache Tomcat/8.5.21 (Ubuntu)
2018 年 1 月 22 日 10:32:53.801 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建时间:2017 年 10 月 13 日 11:06:51 UTC
2018 年 1 月 22 日 10:32:53.802 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器编号:8.5.21.0 2018 年 1 月 22 日 10:32:53.807 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称:Linux
2018 年 1 月 22 日 10:32:53.807 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS 版本:4.13.0-25-generic
2018 年 1 月 22 日 10:32:53.807 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 架构:amd64
2018 年 1 月 22 日 10:32:53.807 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java 主页:/usr/lib/jvm/java-8-openjdk-amd64/jre
2018 年 1 月 22 日 10:32:53.807 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本:1.8.0_151-8u151-b12-0ubuntu0.17.10.2-b12
2018 年 1 月 22 日 10:32:53.807 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 供应商:Oracle Corporation
2018 年 1 月 22 日 10:32:53.807 INFO [主要] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:/var/lib/tomcat8
2018 年 1 月 22 日 10:32:53.808 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:/usr/share/tomcat8
2018 年 1 月 22 日 10:32:53.810 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.util.logging.config.file=/var/lib/tomcat8/conf/logging.properties
2018 年 1 月 22 日 10:32:53.810 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
2018 年 1 月 22 日 10:32:53.810 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.awt.headless=true
2018 年 1 月 22 日 10:32:53.811 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-XX:+UseConcMarkSweepGC
2018 年 1 月 22 日 10:32:53.812 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djdk.tls.ephemeralDHKeySize=2048
2018 年 1 月 22 日 10:32:53.812 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.protocol.handler.pkgs=org.apache.catalina.webresources
2018 年 1 月 22 日 10:32:53.812 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Dcatalina.base=/var/lib/tomcat8
2018 年 1 月 22 日 10:32:53.812 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Dcatalina.home=/usr/share/tomcat8
2018 年 1 月 22 日 10:32:53.813 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:-Djava.io.tmpdir=/tmp/tomcat8-tomcat8-tmp
2018 年 1 月 22 日 10:32:53.814 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用 APR 版本 [1.6.2] 加载基于 APR 的 Apache Tomcat Native 库 [1.2.14]。
2018 年 1 月 22 日 10:32:53.814 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR 功能:IPv6 [true]、sendfile [true]、接受过滤器 [false]、随机 [true]。
2018 年 1 月 22 日 10:32:53.815 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL 配置:useAprConnector [false],useOpenSSL [true]
2018 年 1 月 22 日 10:32:53.824 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL 已成功初始化 [OpenSSL 1.0.2g 2016 年 3 月 1 日]
2018 年 1 月 22 日 10:32:54.087 INFO [main] org.apache.coyote.AbstractProtocol.init 初始化 ProtocolHandler ["http-nio-8080"]
2018 年 1 月 22 日 10:32:54.133 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector 使用共享选择器进行 servlet 写入/读取
2018 年 1 月 22 日 10:32:54.148 INFO [main] org.apache.coyote.AbstractProtocol.init 初始化 ProtocolHandler ["https-openssl-nio-8443"]
我也尝试启用 SSL 调试信息-Djavax.net.debug=ssl
,JAVA_OPTS
它显示了很多信息,但没有像错误或警告那样的信息。
显然我的服务器正在运行,如果我运行的话,netstat -plntu
我会看到:
tcp6 0 0 :::8080 :::* LISTEN 2843/java
tcp6 0 0 :::8443 :::* LISTEN 2843/java
但它没有回应
防火墙端口已打开(8080 之前可以正常工作,我刚刚以同样的方式打开了 8443)
还有什么线索我还可以检查吗?我已经搜索了几个小时,尝试了所有找到的方法,但没有成功……