问题描述
我有一个 p12 文件,我想将其转换为私有和公共 pem 文件,以用于在 docker 中进行身份验证。
我使用以下命令创建了密钥:
openssl pkcs12 -in sourcefile.p12 -nocerts -out client.key -nodes
openssl pkcs12 -in sourcefile.p12 -nokeys -out client.cert.
但是,当我将这些证书插入 docker 时,它会抱怨私钥和公钥不匹配。
我认为问题在于我的 p12 里面有很多证书。当我查看 client.cert 时,我看到许多证书,每个证书都有包属性、主题、颁发者和证书。
由于我的 p12 中只有一个私钥,并且 client.key 看起来正确,我尝试从私钥创建公钥:
openssl rsa -in client.key -pubout > client.cert
这生成了一个看似有效的公钥,以“BEGIN PUBLIC KEY”行开头。但是,当我尝试在 certs.d 中使用此密钥与 docker 进行身份验证时,出现以下错误:
Error response from daemon: tls: Failed to find "CERTIFICATE" PEM block in certificate input after skipping PEM blocks of the following types: [PUBLIC KEY]
那个错误让我特别困惑,因为我认为 client.cert 的全部意义在于拥有一个公钥。
我应该如何将我的 p12 转换为我可以在 docker 的 cert.d 文件夹中设置的内容以进行身份验证?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)