相关疑难解决方法(0)

使用openssl创建.p12信任库

我正在编写Java 8应用程序,并希望使用自签名证书设置一个简单的密钥库和信任库.

通常情况如下:

  1. 使用创建密钥对+证书openssl.
  2. 使用创建.jks密钥库+ .jks信任库 keytool

现在我只想使用openssl和创建.p12密钥库而不是.jks密钥库.

使用以下命令创建.p12密钥库非常有用:

# Create private key and certificate
openssl req -x509 -newkey rsa:"${rsa}" -sha256 \
    -keyout "${key}" \
    -out "${cert}" \
    -days "${days}"

# Create .p12 keystore
openssl pkcs12 -export -in "${cert}" -inkey "${key}" -out "${keystore}"
Run Code Online (Sandbox Code Playgroud)

这个密钥库似乎工作正常,因为在我的Java应用程序中提供相应的.jks信任将获得TLS连接.但是我无法让.p12信任库工作.

我尝试按照此处的建议创建信任库:

# Create .p12 truststore
openssl pkcs12 -export -nokeys -in "${cert}" -out "${truststore}"
Run Code Online (Sandbox Code Playgroud)

然后加载它像这样:

FileInputStream fis = new FileInputStream(new File(trustorePath));
KeyStore trustStore = KeyStore.getInstance("PKCS12");
trustStore.load(fis, truststorePassword.toCharArray());
fis.close();
Run Code Online (Sandbox Code Playgroud)

但我在我的java代码中收到以下异常:

意外错误:java.security.InvalidAlgorithmParameterException:trustAnchors参数必须为非空

我有什么想法我做错了吗? …

java ssl openssl

5
推荐指数
2
解决办法
4558
查看次数

标签 统计

java ×1

openssl ×1

ssl ×1