从 OpenSSL 1.1.x 迁移到 OpenSSL 3.1.1 时出现的问题(从 .p12 文件创建 .crt 和 .key 文件)

问题描述 投票:0回答:1

我正在为我的 Java Web 应用程序创建自签名证书。我的应用程序使用 Apache Tomcat 和 Apache HTTPD 代理。到目前为止,我一直在使用 OPENSSL 1.1.1 和 Java keytool 来进行自签名证书,并且它工作得很好。但现在我需要迁移到 OpenSSL 3.1.1 并且遇到问题。

第一步:创建密钥库

keytool -genkeypair -alias keystore -keyalg RSA -keystore C:\SSL\PVIStore -keysize 2048

第 2 步:将第 1 步中生成的密钥库导入到 .p12 文件中

keytool -importkeystore -srckeystore C:\SSL\PVIStore -destkeystore C:\SSL\PVIStore.p12 -deststoretype PKCS12

第3步:使用openssl 3.1.1从第2步生成的文件中获取.crt文件

openssl pkcs12 -in C:\PVIStore.p12 -nokeys -out C:\SSL\PVIStore.crt

第四步:使用 openssl 3.1.1 从步骤#2 中生成的文件中获取 .key 文件

openssl pkcs12 -in C:\SSL\PVIStore.p12 -nocerts -nodes -out C:\SSL\PVIStore.key

步骤 #3 和步骤 #4 在 openssl 1.1.x 中工作得很好,但与 openssl 3.1.1 一起使用时出现以下错误:-

输出密钥和证书时出错 94210000:错误:0308010C:数字信封例程:inner_evp_generic_fetch:不支持:crypto vp vp_fetch.c:341:全局默认库上下文,算法(RC2-40-CBC:0),属性()

注意:通过遵循另一个stackoverflow讨论,我找到了适合我的解决方法,但我不想使用旧版交换机继续前进。

非常感谢任何帮助。

java ssl java-8 openssl self-signed
1个回答
0
投票

-legacy
选项添加到 OpenSSL
pkcs12
命令行。

请参阅手册页,上面写着:

当加载涉及 RC2-40-CBC 等旧版 PKCS#12 文件时遇到问题时,请尝试使用 -legacy 选项,如果需要,还可使用 -provider-path 选项。

https://www.openssl.org/docs/man3.1/man1/openssl-pkcs12.html

© www.soinside.com 2019 - 2024. All rights reserved.