本文介紹了Tomcat 9密鑰庫密碼無效的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
嘗試在Tomcat 9中使用Windows 10中的JDK10設(shè)置SSL。當我按照在線教程使用默認密碼‘changeit’創(chuàng)建Java密鑰庫時,一切運行正常,Tomcat啟動時沒有錯誤。
但是,如果我使用不同于‘changeit’的密鑰庫密碼創(chuàng)建密鑰庫,Tomcat會拋出這個錯誤:
Caused by: java.lang.IllegalArgumentException: keystore password was incorrect
這是創(chuàng)建密鑰庫的命令:
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應(yīng)該是";certificateKeystorePassword";。也許我在日志中遺漏了這一點,但Tomcat似乎沒有拋出一個適當?shù)腻e誤,如‘Bad Attribute for Connector’,這將是有用的。
Tomcat似乎有不同的連接器,因此必須使用正確的連接器:
https://tomcat.apache.org/tomcat-9.0-doc/config/http.html#SSL_Support
這篇關(guān)于Tomcat 9密鑰庫密碼無效的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,