在 Tomcat 7 中启用 ssl 模式时,我的 tomcat 日志中出现以下错误
我已经使用 openssl 生成了 .key 文件,如下所示
openssl genrsa -des3 -out localhost 2048
我在 tomcat server.xml 中给出了我的密钥文件的路径
严重:无法初始化与 ProtocolHandler [“http-bio-8443”] java.io.IOException 关联的端点:无效的密钥库格式
openssl genrsa -des3 -out localhost 2048
生成一个私钥。使用 HTTPS 运行 Web 服务器所需的是私钥和证书。您需要一个步骤来生成证书。
您可以使用 2 种几乎完全不同的方法在 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 的证书,如果需要)。
基于 Java 的系统,包括 tomcat,需要以 PKCS 格式存储。因此,首先您需要正确构建您的商店,然后按照 tomcat 指南配置 tomcat 以使用它们。您的商店格式和配置似乎不正确。