【问题标题】:Tomcat 8 cannot find my keystore for enabling httpsTomcat 8 找不到用于启用 https 的密钥库
【发布时间】:2018-08-13 03:41:11
【问题描述】:

我正在尝试在我的本地独立 tomcat 8.5.20 上启用 HTTPS。我已经看到有关该错误的各种问题,但似乎都没有帮助

这些是我采取的步骤: 1) "%JAVA_HOME%\bin\keytool" -genkey -alias tomcat -keyalg RSA -keystore C:\tomcat\conf\mykeystore.jks 输入密钥库密码 ABCDEF . . 输入密钥密码(按回车键)

请注意,在此步骤之前我不会执行 openSSL...

2) "%JAVA_HOME%\bin\keytool" -importkeystore -srckeystore C:\tomcat\conf\mykeystore.jks -destkeystore C:\tomcat\conf\mykeystore.jks - deststoretype pkcs12

3)将以下内容添加到 server.xml (最初注释掉的 SSL 有 certificateKeystoreFile 但是当我查看 apache 时,他们没有将其列为一个选项,我也删除了 keystorePass,因为它不在原始文件中):

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true" >
    <SSLHostConfig>
        <Certificate keystoreFile="conf/mykeystore.jks" keystorePass="ABCDEF"
                     type="RSA"/>
    </SSLHostConfig>
</Connector>

4) 重启tomcat。

5) 在 chrome 中输入“https://localhost:8443/myapp”,它就会超时。

6) 在 catalina.log 我得到: 无法初始化与 ProtocolHandler ["https-jsse-nio-8443"] 关联的端点

我还编辑了tomcat的启动参数并添加了

-Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.trustStore=c:\tomcat\conf\mykeystore.jks

即使https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html 看起来与我的 server.xml 中的不同

【问题讨论】:

  • 您使用的版本 8.0 和 8.5 之间存在显着差异,请参阅:tomcat.apache.org/tomcat-8.5-doc/ssl-howto.html
  • 按照上面的文档,删除 SSLHostConfig 标签。
  • 嗯。从 8-05 文档中剪切和粘贴(感谢您指出这一点)并将 keystoreFile 更改为 conf/mykeystore.jks 但这不起作用。如果我只是执行“conf/mykeystore.jks”,它会在 tomcat 的根目录下查找正确吗?
  • 是的,除非您在 catalina.bat 或 setenv.bat 中更改了 TOMCAT_BASE 变量
  • 好的,谢谢。最后管理它以“接受”连接。在我意识到我需要将密码更改为我的密钥库的密码之前,我一直在大脑冻结:(出于某种原因,我认为总是将密码设置为“changeit”有奇怪的原因,我本来希望 或 [ ] 或 {} 表示我的信息)

标签: tomcat ssl https keytool


【解决方案1】:

在webapps中创建文件夹,名称为8443,将war文件重命名为root.war并粘贴war文件。 然后编辑 server.xml:

<Service name="Catalina8443">
      <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"  clientAuth="false" sslProtocol="TLS"
               keystoreFile="conf/certificate.jks" keystorePass="password"
               />
      <Engine name="Catalina8443" defaultHost="localhost">
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>

          <Host name="localhost" appBase="webapps/8443"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

          </Host>
      </Engine>
</Service>  

【讨论】:

    猜你喜欢
    • 2011-01-04
    • 2013-03-21
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 2023-04-07
    • 2015-10-07
    • 2014-06-12
    • 1970-01-01
    相关资源
    最近更新 更多