我正在编写Java 8应用程序,并希望使用自签名证书设置一个简单的密钥库和信任库.
通常情况如下:
openssl.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参数必须为非空
我有什么想法我做错了吗? …