Tomcat 8.5 w/Java 8 和 openssl 1.0.1:无法让端口 8443 响应

Tomcat 8.5 w/Java 8 和 openssl 1.0.1:无法让端口 8443 响应

希望得到一些帮助,让 SSL 8443 端口接受 https 连接。请进行以下设置:

CentOS: 2.6.32-220.el6.i686
Java:       1.8.0-openjdk-1.8.0.91-3.b14.el6_8.i386
OpenSSL:    1.0.1e-48.el6_8.1
Tomcat: 8.5.4
Apr-devel:  1.5.2
  • 使用 keytool 设置带有自签名证书的 2048 位密钥库
  • 生成 CSR 并发送给 CA
  • 导入了来自 CA 的返回结果以及根和链

我无法使用上述软件配置端口 8443 的连接器。

我尝试使用 Tomcat 6/7 语法将连接器关联到密钥库,但没有成功。在文档中,它指出 8.5 将使用旧语法并SSLHostconfig在后台构建一个节:

旧语法:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
        maxThreads="200" compression="on"
        scheme="https" secure="true" SSLEnabled="true">
        keystoreFile="/opt/tomcat/.keystore" keyAlias="tomcat"
        keystorePass="changeit"

....

连接器中提供的密码与密钥库和自签名证书所需的密码相同org.apache.coyote.http11.Http11NioProtocol。使用上述方法,我要么永远无法访问 8443,要么服务器返回密钥库被篡改或密码错误。

我也尝试了上述方法,但使用的是protocol="org.apache.coyote.http11.Http11NioProtocol"和 Nio2。

错误消息示例:

SEVERE: Failed to initialize end point associated with ProtocolHandler ["https-openssl-nio-8443"]
java.lang.IllegalArgumentException: java.io.IOException: Keystore was tampered with, or password was incorrect

..结果相同(挂起或密码错误)。

新语法:我尝试了 SSLHostConfig 对象的所有条目/属性组合,但都没有成功。它要么在启动时抛出 Java 错误,要么在访问时挂起(这里没有密码错误,因为我甚至不认为它试图访问密钥库)。

这里有人可以建议一条路线,在 CentOS 6 上的 Tomcat 8.5 w/Java 8 上运行 8443 吗?

这里有人可以建议一种方法来测试证书和链是否安装正确吗?

欢迎提出任何其他建议。

相关内容