无法使 SSL 在 Tomcat8.5 上运行

无法使 SSL 在 Tomcat8.5 上运行

我的 Tomcat8 在端口 8080 上运行良好,但现在我尝试在 8443 中启用 https,尽管日志看起来很好,但它不起作用(现在即使在没有 https 的 8080 中也不起作用)。

我的系统是 Ubuntu 17.10,我正在使用 Tomcat 8.5.21

我做了什么:

  1. 获取 Let's Encrypt 证书(它在我的 Apache 中运行良好)并创建 JKS 密钥库。

  2. 更新了我的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" />
    
  3. 安装 APR 并确保它<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />存在于我的系统中server.xml(日志中有关 APR 的警告消失了)

  4. 修复了错误说无法恢复密钥通过制作我的 Keystore 和 Key 密码相同

  5. 重新启动了 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=sslJAVA_OPTS它显示了很多信息,但没有像错误或警告那样的信息。

显然我的服务器正在运行,如果我运行的话,netstat -plntu我会看到:

tcp6   0    0 :::8080       :::*        LISTEN      2843/java
tcp6   0    0 :::8443       :::*        LISTEN      2843/java

但它没有回应

防火墙端口已打开(8080 之前可以正常工作,我刚刚以同样的方式打开了 8443)

还有什么线索我还可以检查吗?我已经搜索了几个小时,尝试了所有找到的方法,但没有成功……

相关内容