Java 如何正确配置Tomcat SSLHostConfig?

Java 如何正确配置Tomcat SSLHostConfig?,java,tomcat,configuration,ssl-certificate,Java,Tomcat,Configuration,Ssl Certificate,我遵循本教程在tomcat中启用ssl: 虽然tomcat在最后运行,但我无法访问https,表示无法连接。所以我检查了日志,得到: Caused by: java.io.IOException: SSLHostConfig attribute certificateFile must be defined when using an SSL connector ,但我的certificateFile的定义如下所示: <Connector port="443"

我遵循本教程在tomcat中启用ssl:

虽然tomcat在最后运行,但我无法访问https,表示无法连接。所以我检查了日志,得到:

Caused by: java.io.IOException: SSLHostConfig attribute certificateFile must be defined when using an SSL connector
,但我的certificateFile的定义如下所示:

<Connector port="443"
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    maxThreads="100"
    compression="on"
    scheme="https"
    SSLEnabled="true"
    secure="true"
    SSLVerifyClient="none"
    SSLProtocol="TLSv1.2"
    defaultSSLHostConfigName="test.test">
    <SSLHostConfig hostName="test.test">
        <Certificate certificateFile="conf/cert.pem" certificateKeyFile="conf/privkey.pem" certificateChainFile="conf/chain.pem" />
    </SSLHostConfig>
</Connector>

这些文件以conf格式存在/

tomcat 9文档:SSLHostConfig和Certificate部分使用了新属性(自tomcat 8.5以来)和不推荐使用的属性(参见)。设置的效果,例如
SSLProtocol
是创建第二个
主机名
\u默认值
。这就是错误消息所指的元素

您应该将过时的标记(
SSLVerifyClient
SSLProtocol
)替换为它们当前的对应标记(如果需要默认值,可以省略它们):


备注:您在特定于APR连接器的位置使用的属性。如果这个选择是有意的,那么应该将协议更改为
org.apache.coyote.http11.Http11AprProtocol