openssl p12 生成失败,使用 CA 捆绑链选项

RTF*_*RTF 1 java certificate ssl openssl

我正在尝试为 Java servlet 框架安装 SSL 证书。我有 3 个文件:私钥 (PEM)、证书文件 (PEM) 和 CA 包 (PEM)。当我运行时:

openssl pkcs12 -export -in server.crt -inkey server.key -certfile server.crt -out server.p12 -CAfile server.ca-bundle -chain
Run Code Online (Sandbox Code Playgroud)

...为了获取p12可用于创建 Java 密钥库的文件,它失败并显示以下错误:

Error unable to get issuer certificate getting chain. 
Run Code Online (Sandbox Code Playgroud)

在其他地方,我已经使用相同的密钥、证书和 CA 包文件成功设置了 2 个 apache 服务器,并且没有问题。为什么我会收到此错误?

RTF*_*RTF 5

我在这篇博文上找到了 (the|a) 这个问题的解决方案。从帖子:

经过一些测试,我发现您需要制作一个新的 CAfile 才能使用,它结合了 openssl 发行版中的 cacerts 文件和中间件.crt 文件...

...这是:

cat your-server-bundle /etc/ssl/certs/ca-certificates.crt > allcacerts.crt
Run Code Online (Sandbox Code Playgroud)

...然后使用allcacerts.crt(或任何您称之为)作为-CAfileopenssl 命令中选项的参数。