Tomcat 9无效的密钥库密码

时间:2018-08-03 21:10:15

标签: java tomcat ssl keystore tomcat9

尝试在Windows 10中使用JDK10在Tomcat 9中设置SSL。当我按照在线教程使用默认密码“ changeit”创建Java密钥库时,一切正常,并且Tomcat启动没有错误。 但是,如果我使用除'changeit'以外的其他密钥库密码来创建密钥库,tomcat会抛出此错误:

Caused by: java.lang.IllegalArgumentException: keystore password was incorrect

这是创建密钥库的命令:

keytool -genkey -alias tomcat -keyalg RSA -keystore c:\certificates\tomcatkeystore

这是有效的SSL连接器。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="C:/certificates/tomcatkeystore"
                     type="RSA" clientAuth="false" sslProtocol="TLS" keystorePass="changeit" />
    </SSLHostConfig>
</Connector>

无法使用的SSL连接器。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="C:/certificates/tomcatkeystore"
                     type="RSA" clientAuth="false" sslProtocol="TLS" keystorePass="testing" />
    </SSLHostConfig>
</Connector>

为什么我遵循与上述完全相同的步骤,但是更改为不同的密钥库密码,并在server.xml中指定了密码,则产生上述Tomcat错误?

注意:在这两种情况下,我注意到的一件事是keytool命令从不提示我输入“密钥密码”,就像许多在线示例所示。使用默认“ changeit”密码以外的密码时,是否需要其他keytool命令?

谢谢。

1 个答案:

答案 0 :(得分:1)

好的,我能够解决这个问题。我的问题是我使用了错误的连接器属性来指定密钥库密码。在我的示例中,我使用的是“ keystorepass”,正确的应该是“ certificateKeystorePassword”。也许我在日志中错过了它,但是Tomcat似乎并没有抛出诸如“连接器的错误属性”之类的适当错误,这会很有用。

似乎Tomcat具有不同的连接器,因此必须使用正确的连接器:

DIR="/home/user/example/foo/bar"
[[ "$DIR" =~ ^[/][^/]+ ]] && printf "$BASH_REMATCH"