Tomcat 9 invalid keystore password(Tomcat 9密钥库密码无效)
问题描述
尝试在Tomcat 9中使用Windows 10中的JDK10设置SSL。当我按照在线教程使用默认密码‘changeit’创建Java密钥库时,一切运行正常,Tomcat启动时没有错误。 但是,如果我使用不同于‘changeit’的密钥库密码创建密钥库,Tomcat会抛出这个错误:Caused by: java.lang.IllegalArgumentException: keystore password was incorrect
这是创建密钥库的命令:
keytool -genkey -alias tomcat -keyalg RSA -keystore c:certificates omcatkeystore
这是工作正常的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命令从来不会像许多在线示例所显示的那样提示我输入‘key password’。使用默认‘changeit’密码以外的密码时,是否需要不同的keyTool命令?谢谢。
推荐答案
好的,我能够解决这个问题。我的问题是我使用了错误的连接器属性来指定密钥库密码。在我的示例中,我使用的是";keystorepass";,正确的keystorepass应该是";certificateKeystorePassword";。也许我在日志中遗漏了这一点,但Tomcat似乎没有抛出一个适当的错误,如‘Bad Attribute for Connector’,这将是有用的。
Tomcat似乎有不同的连接器,因此必须使用正确的连接器:
https://tomcat.apache.org/tomcat-9.0-doc/config/http.html#SSL_Support
这篇关于Tomcat 9密钥库密码无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Tomcat 9密钥库密码无效


基础教程推荐
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- 如何对 Java Hashmap 中的值求和 2022-01-01
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- 存储 20 位数字的数据类型 2022-01-01
- Struts2 URL 无法访问 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01