江峰_Fight 2021-12-09 10:48 采纳率: 0%
浏览 101
已结题

Tomcat8 配置SSL 报错SSLHostConfig attribute certificateFile must be defined when using an SSL connector

ssl配置:

 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="200" SSLEnabled="true" scheme="https" secure="true"
               useServerCipherSuitesOrder="true" clientAuth="want"
               defaultSSLHostConfigName="test.com"
                >
        <SSLHostConfig hostName="test.com"  truststoreFile="/opt/security/client_trust.jks"
                       truststorePassword="test" sslProtocol="TLS" protocols="TLSv1.2"
                       ciphers="TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
                                TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
                                TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
                                TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384">
            <Certificate certificateKeystoreFile="/opt/security/keystore.jks"
                         certificateKeystorePassword="test" certificateKeyAlias="tomcat"
                         />
        </SSLHostConfig>
    </Connector>

错误信息

08-Dec-2021 11:46:41.361 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-8443]]
        org.apache.catalina.LifecycleException: Protocol handler initialization failed
                at org.apache.catalina.connector.Connector.initInternal(Connector.java:1076)
                at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at org.apache.catalina.core.StandardService.initInternal(StandardService.java:552)
                at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:843)
                at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at org.apache.catalina.startup.Catalina.load(Catalina.java:639)
                at org.apache.catalina.startup.Catalina.load(Catalina.java:662)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:305)
                at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)
        Caused by: java.lang.IllegalArgumentException: SSLHostConfig attribute certificateFile must be defined when using an SSL connector
                at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:100)
                at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:72)
                at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:246)
                at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1161)
                at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:222)
                at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:599)
                at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:80)
                at org.apache.catalina.connector.Connector.initInternal(Connector.java:1074)
                ... 13 more
        Caused by: java.io.IOException: SSLHostConfig attribute certificateFile must be defined when using an SSL connector
                at org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:309)
                at org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:244)
                at org.apach

但是如果我用这样,就不会报错,哪里需要改正呢?一定要用SSLHostConfig 这个元素才行,别问为什么。谢谢

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="200" SSLEnabled="true" scheme="https" secure="true"
               keystoreFile="/opt/security/keystore.jks"
               keystorePass="test" keyAlias="tomcat"
               sslProtocol="TLS" sslEnabledProtocols="TLSv1.2"
               ciphers="TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
                        TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
                        TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
                        TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
               useServerCipherSuitesOrder="true"
               truststoreFile="/opt/security/client_trust.jks"
               truststorePass="test" clientAuth="want" />
  • 写回答

1条回答 默认 最新

  • 关注

    找不到SSL的证书文件certificateFile。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月11日
  • 创建了问题 12月9日

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制