bash 脚本中带有 PKCS#12 证书的 cURL

2024-04-27

我必须连接到网络服务,其中必须有 pkcs12 证书。这个想法是在 bash 脚本中使用curl(具体来说,在 OS X 下)。

我了解到,curl 在通信中无法做的少数事情之一是处理 pkcs12 证书(.p12)。我有什么选择?

我读过将证书转换为 PEM 格式是可行的(使用 openssl),但是我不知道如何告诉curl 它获得了 PEM 并且应该与请求 PKCS12 证书的 Web 服务进行通信。

将 pkcs12 转换为 pem 可以像这样完成(例如),它对我有用,但是我还没有成功地将它们与curl一起使用:

openssl pkcs12 -in mycert.p12 -out file.key.pem -nocerts -nodes
openssl pkcs12 -in mycert.p12 -out file.crt.pem -clcerts -nokeys

有什么提示吗?或者,还有卷曲的替代品吗?该解决方案应该基于命令行。


我想你已经解决了,但我也遇到了同样的问题。我回答分享我的解决方案。

如果您有 .p12 文件,您的方法是正确的。 首先,您必须将证书和密钥与 p12 文件分开。 举个例子,如果你有一个mycert.p12文件执行

openssl pkcs12 -in mycert.p12 -out file.key.pem -nocerts -nodes
openssl pkcs12 -in mycert.p12 -out file.crt.pem -clcerts -nokeys

然后你必须调用你的网址。例如,假设您想要获取特定 Web 服务的 WSDL

curl -E ./file.crt.pem --key ./file.key.pem https://myservice.com/service?wsdl

如果文件file.crt.pem and file.key.pem位于您的工作文件夹中“./”是强制性的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bash 脚本中带有 PKCS#12 证书的 cURL 的相关文章

随机推荐