希望得到一些帮助,让 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 吗?
这里有人可以建议一种方法来测试证书和链是否安装正确吗?
欢迎提出任何其他建议。