本文介紹了Tomcat 9密鑰庫(kù)密碼無(wú)效的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
嘗試在Tomcat 9中使用Windows 10中的JDK10設(shè)置SSL。當(dāng)我按照在線教程使用默認(rèn)密碼‘changeit’創(chuàng)建Java密鑰庫(kù)時(shí),一切運(yùn)行正常,Tomcat啟動(dòng)時(shí)沒(méi)有錯(cuò)誤。
但是,如果我使用不同于‘changeit’的密鑰庫(kù)密碼創(chuàng)建密鑰庫(kù),Tomcat會(huì)拋出這個(gè)錯(cuò)誤:
Caused by: java.lang.IllegalArgumentException: keystore password was incorrect
這是創(chuàng)建密鑰庫(kù)的命令:
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>
無(wú)法正常工作的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>
如果我遵循與上面完全相同的步驟,但更改為不同的密鑰庫(kù)密碼并在server.xml中指定它,為什么會(huì)生成上面的Tomcat錯(cuò)誤?
注意:在這兩種情況下,我都注意到一件事,那就是keyTool命令從來(lái)不會(huì)像許多在線示例所顯示的那樣提示我輸入‘key password’。使用默認(rèn)‘changeit’密碼以外的密碼時(shí),是否需要不同的keyTool命令?
謝謝。
推薦答案
好的,我能夠解決這個(gè)問(wèn)題。我的問(wèn)題是我使用了錯(cuò)誤的連接器屬性來(lái)指定密鑰庫(kù)密碼。在我的示例中,我使用的是";keystorepass";,正確的keystorepass應(yīng)該是";certificateKeystorePassword";。也許我在日志中遺漏了這一點(diǎn),但Tomcat似乎沒(méi)有拋出一個(gè)適當(dāng)?shù)腻e(cuò)誤,如‘Bad Attribute for Connector’,這將是有用的。
Tomcat似乎有不同的連接器,因此必須使用正確的連接器:
https://tomcat.apache.org/tomcat-9.0-doc/config/http.html#SSL_Support
這篇關(guān)于Tomcat 9密鑰庫(kù)密碼無(wú)效的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,