2012-04-09 54 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

相关问题