我刚刚安装了 tomcat 10,并尝试集成一个 jks 文件,该文件我在 tomcat 9 安装中使用时没有出现任何问题,但我无法用它启动 tomcat 10。有人可以提供一个适用于 tomcat 10 的有效 https 配置吗?我更喜欢使用 jks 文件,但我也希望使用 pem、crt、p12 或任何其他证书格式。
以下是我尝试使用 jks 文件启动 tomcat 10 时遇到的错误。
Caused by: java.lang.IllegalArgumentException: no element SSLHostConfig found with hostName [_default_] corresponding to defaultSSLHostConfigName for the connector [https-jsse-nio-8443]
答案1
<< 原因:java.lang.IllegalArgumentException:未找到具有 hostName 的元素 SSLHostConfig [默认] 对应于连接器 [https-jsse-nio-8443] 的 defaultSSLHostConfigName
上述错误消息大多是由于您使用了一些已弃用的 SSL 属性(例如“keystoreFile”、“keystorePass”)而触发的,这些属性在 Tomcat 10 中不再可用,请参阅[1]
keystoreFile 和 keystorePass 等属性在 Tomcat 9 中被标记为已弃用,并从 Tomcat 10 中完全删除。
您可以在标签内包含证书详细信息,如下所示
<!-- Define an SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate
certificateKeystoreFile="${user.home}/.keystore"
certificateKeystorePassword="changeit"
type="RSA"
/>
</SSLHostConfig>
</Connector>
[1]https://tomcat.apache.org/tomcat-10.0-doc/ssl-howto.html#SSL_and_Tomcat
[2]https://tomcat.apache.org/tomcat-9.0-doc/config/http.html#SSL_Support_-Connector-NIO_and_NIO2(已弃用)
[3]https://tomcat.apache.org/tomcat-9.0-doc/config/http.html#SSL_Support_-Connector-APR/Native(已弃用)
问候,巴拉特