簡體   English   中英

Tomcat 9 無效的密鑰庫密碼

[英]Tomcat 9 invalid keystore password

嘗試在 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 命令?

謝謝。

好的,我能夠解決這個問題。 我的問題是我使用了錯誤的連接器屬性來指定密鑰庫密碼。 在我的示例中,我使用了“keystorepass”,正確的應該是“certificateKeystorePassword”。 也許我在日志中錯過了它,但是 Tomcat 似乎沒有拋出適當的錯誤,例如“連接器的錯誤屬性”,這本來很有用。

好像 Tomcat 有不同的連接器,所以必須使用正確的連接器:

https://tomcat.apache.org/tomcat-9.0-doc/config/http.html#SSL_Support

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM