一尘不染

java.io.IOException:使用Tomcat服务器的无效密钥库格式

tomcat

在Tomcat 7中启用s​​sl模式时,我的tomcat日志出现以下错误

我已经使用如下所示的openssl生成了.key文件

openssl genrsa -des3 -out localhost 2048

我在tomcat server.xml中给出了我的密钥文件的路径

严重:无法初始化与ProtocolHandler [“ http-bio-8443”]关联的端点java.io.IOException:无效的密钥库格式


阅读 245

收藏
2020-06-16

共1个答案

一尘不染

openssl genrsa -des3 -out localhost 2048生成一个私钥。使用HTTPS运行Web服务器所需的是私钥和证书。您将需要一个步骤来生成证书。

您可以使用两种几乎完全不同的方法在Tomcat中配置HTTPS,这取决于您是否使用APR连接器。

如果您使用的是APR连接器,则使用OpenSSL生成密钥/证书是有意义的,因为它是期望的格式。(如果一个自签名证书足以满足您的环境,则有许多教程可使用OpenSSL生成自签名证书。)

如果您不使用APR,则必须将OpenSSL生成的密钥/证书转换为JRE支持的密钥库格式。来自OpenSSL,将您的私钥+证书转换为PKCS#12存储区(.p12)通常是最容易的:直接通过Oracle
/ OpenJDK使用PKCS12密钥库类型来支持。(您可以将PKCS#12文件转换为JKS存储,但这不是必需的。)

但是,如果您还没有任何密钥/证书,则为Tomcat生成自签名证书的最简单方法是keytool直接使用。这将产生一个JKS密钥库,这是默认类型。keytool -genkey不仅可以生成密钥/对,而且足以产生CSR,而且还可以关联自签名证书(至少是暂时的,直到必要时从CA导入证书为止)。

2020-06-16