Curl 不会提示我输入证书密码

Curl 不会提示我输入证书密码

我正在尝试使用 CURL 测试与需要客户端证书的服务器的简单 HTTPS 连接。我已在.curlrc文件中指定了证书类型cert = /path/to/Cert.p12,并告诉它是 PKCS12 证书cert-type = P12。它一直失败,并显示“无法解析 PKCS12 文件,请检查密码......mac 验证失败”,因此出于好奇,我尝试在配置文件中对密码进行硬编码,果然它立即将页面拉了出来。

我读手册页大约十几次,我没看到命令行上有任何内容说“请提示我输入密码”,它就在那里说“如果未指定可选密码,将在终端上查询”。我是否遗漏了一些显而易见的东西?

答案1

我找不到来源,但似乎虽然 CURL有点说的是 PKCS12,它实际上更愿意使用 PEM 格式的证书。只需将我的 PKCS12 证书转换为 PEM 并输入密码,CURL 就会按预期开始提示输入密码。

答案2

我可以使用 P12,并使用环境变量作为密码,该密码是我提前通过安全提示获得的。代码:

read -sp "Certificate Password: " CERTPASS
curl --cert-type P12 --cert myp12file.p12:"$CERTPASS" https://example.com

另外,我可以使用以下命令格式提示输入证书密码:

curl -uadmin -v -X POST https://example.com

相关内容