小编Ber*_*tin的帖子

从 OpenJDK16 读取使用 keytool 创建的 PKCS12 密钥库时 Java 8 中的 IOException

TL; 博士

keytool从 OpenJDK16 创建的 PKCS12 密钥库文件无法从 Java 8、9、10 和 11 中读取。这是错误吗?如何创建适用于 Java 8 的 PKCS12 密钥库?

语境

我构建了一个 Maven 项目,该项目生成一个可执行 JAR 文件,该文件必须在从版本 8 到版本 16 的任何 JRE 上运行。该 JAR 文件生成一个 HTTPS 服务器(使用com.sun.net.httpserver.HttpsServer)。

在构建期间,我使用keytool生成密钥对并将其存储在捆绑在 JAR 中的 PKCS12 密钥库中(实际上,我使用的是keytool-maven-plugin):

$ /path/to/jdk16/bin/keytool -genkeypair -keystore /tmp/keystore.p12 -storepass password -storetype PKCS12 -alias https -dname "CN=localhost, OU=My HTTP Server, O=Sentry Software, C=FR" -keypass password -validity 3650 -keyalg RSA -sigalg SHA256withRSA
Run Code Online (Sandbox Code Playgroud)

Java 代码使用这个自动生成的密钥库来启动 HTTPS 服务器:

// initialize the HTTPS …
Run Code Online (Sandbox Code Playgroud)

java ssl keytool java-16

6
推荐指数
1
解决办法
561
查看次数

标签 统计

java ×1

java-16 ×1

keytool ×1

ssl ×1