具體意思是:
Starting Coyote HTTP/1.1 on http-8080
: HTTP 連接器(端口 8080)啟動成功了。嚴重: Failed to load keystore type PKCS12 with path conf/jlksearch.fzsmk.cn.pfx due to failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded
: 這是關鍵錯誤。Failed to load keystore type PKCS12
: Tomcat 無法加載類型為 PKCS12 的密鑰庫(keystore)。PKCS12 是.pfx
文件的標準格式。with path conf/jlksearch.fzsmk.cn.pfx
: 它找到了你在server.xml
中指定的 PFX 文件路徑 (conf/jlksearch.fzsmk.cn.pfx
)。這說明文件路徑配置本身沒問題,Tomcat 能找到這個文件。due to failed to decrypt safe contents entry
: 失敗的原因是無法解密 PFX 文件中的安全內容。PFX 文件通常是用密碼加密保護的。javax.crypto.BadPaddingException: Given final block not properly padded
: 這個底層的加密異常強烈暗示用于解密 PFX 文件的密碼不正確。當密碼錯誤時,解密過程會失敗,常常導致這種 “padding” (填充) 錯誤。
總結:
最可能的原因是:你在 Tomcat 的 server.xml
文件中為 HTTPS Connector 配置的 keystorePass
(密鑰庫密碼) 與你的 jlksearch.fzsmk.cn.pfx
文件的實際密碼不匹配。
你需要:
- 打開 Tomcat 的
conf/server.xml
文件。 - 找到配置 HTTPS 的
<Connector>
部分。 - 仔細檢查
keystoreFile="conf/jlksearch.fzsmk.cn.pfx"
和keystoreType="PKCS12"
這兩項配置是否正確。 - 最重要的是,核對
keystorePass="..."
屬性中的密碼,確保它與證書旁邊那個pfx-password.txt
文件里的密碼完全一致,沒有任何額外的空格或字符。 - 保存
server.xml
文件。 - 重新啟動 Tomcat。
如果密碼確認無誤,但問題依舊,極小概率可能是 PFX 文件本身已損壞。