2012-04-09 52 views
0

啓用SSL模式下的Tomcat 7,我讓我的tomcat的日誌java.io.IOException異常:無效的密鑰庫格式使用Tomcat服務器

我已經genrated使用OpenSSL的.key文件像下面

以下錯誤
openssl genrsa -des3 -out localhost 2048 

我給出的路徑到我的密鑰文件在tomcat的server.xml中

重度:無法初始化具有ProtocolHandler [ 「HTTP-BIO-8443」] java.io.IOException的相關終點:無效的密鑰庫格式

回答

2

openssl genrsa -des3 -out localhost 2048生成一個私鑰。使用HTTPS運行Web服務器所需的是私鑰和證書。您需要一個步驟來生成證書。

您可以使用2種幾乎完全不同的方法在Tomcat中配置HTTPS,具體取決於您是否使用APR連接器。

如果您使用的是APR connector,使用OpenSSL生成密鑰/證書是有意義的,因爲它是它所期望的格式。 (如果自簽名證書足以滿足您的環境,有許多教程可用於生成OpenSSL自簽名證書。)

If you're not using APR,您必須將使用OpenSSL生成的keys/cert轉換爲keystore您的JRE支持的格式。來自OpenSSL,將您的私鑰+證書轉換爲PKCS#12存儲(.p12)通常最簡單:直接通過Oracle/OpenJDK以PKCS12密鑰庫類型支持。 (您可以將PKCS#12文件轉換爲JKS存儲,但這不是必需的。)

但是,如果您還沒有任何密鑰/證書,那麼爲Tomcat生成自簽名證書的最簡單方法直接使用keytool。這將產生一個JKS密鑰庫,這是默認類型。 keytool -genkey不僅生成密鑰/對並足以生成CSR,而且還將自簽名證書關聯(至少暫時直到您導入來自CA的證書(如有必要))。

-2

基於Java的系統(包括tomcat)需要以PKCS格式存儲。因此,首先您需要正確構建您的商店,然後按照Tomcat指南配置tomcat以使用它們。您的商店格式和配置似乎不正確。

+1

這是不正確的。首先,這取決於你是否使用APR。其次,默認的密鑰庫類型仍然是JKS。原則上,可以使用其中一個安全提供程序支持的任何密鑰庫類型,因此它取決於提供程序。在Oracle/OpenJDK上(使用Sun提供程序),可以使用JKS,PKCS#12,PKCS#11和NSS。 – Bruno 2012-04-09 14:23:49

相關問題