curl命令有效,但C程序无法通过NSS:找不到客户端证书(未指定昵称)

时间:2019-02-14 22:02:13

标签: ssl openssl libcurl nss

有很多类似的帖子,但我想了解的远不止这些。 我的curl命令行工作正常,能够与服务器对话并获取我想要的数据。该命令看起来像

curl -v --tlsv1.2 --cert ./service_cert.pem  --key ./service_private.key  "https://myserver"

但是当我尝试运行C程序并检查http客户端对象时,我会看到

errorBuffer = "NSS: client certificate not found (nickname not specified)

进一步阅读,我意识到我已经用NSS构建了libcurl,它不支持从平面文件(.pem)中读取证书


然后,命令行curl实用程序如何读取pem文件?

1 个答案:

答案 0 :(得分:0)

您需要使用certutil将客户证书导入NSS数据库,并使您的代码使用该数据库。

参考:

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil