NSS:找不到客户端证书(昵称未指定)?

时间:2013-04-02 20:32:23

标签: curl openssl centos libcurl centos6

我正在尝试通过PHP curl在Centos 6系统上访问第三方服务,该系统附带了针对NSS而不是OpenSSL编译的curl和libcurl。

这对我造成了问题,每次我尝试访问该服务时都会收到此错误NSS: client certificate not found (nickname not specified)

我的理解是我需要在NSS数据库中安装证书。

我正在寻找有关如何执行此操作的分步说明(请记住,我需要使用这个来处理从Nginx服务器调用的PHP curl函数)

由于

3 个答案:

答案 0 :(得分:20)

尝试使用“./”或使用完整路径为证书文件名添加前缀。从curl联机帮助页:

  

如果curl是针对NSS SSL库构建的,则此选项[--cert]       可以告诉curl要在其中使用的证书的昵称       NSS数据库由环境变量SSL_DIR定义(或由       默认/ etc / pki / nssdb)。如果是NSS PEM PKCS#11模块(lib-       nsspem.so)可用,然后可以加载PEM文件。 如果你       想要使用当前目录中的文件,请在它之前       使用“./”前缀,以避免与昵称混淆。

(强调我的)

或者,有一些导入NSS证书数据库的说明在这里,虽然我没有使用它们: http://rcritten.fedorapeople.org/nss_compat_ossl.html

答案 1 :(得分:0)

当我在尝试访问使用简单密码身份验证的FTPS服务器时输入了错误的密码时,我收到了与curl相同的错误消息。它与证书无关。

答案 2 :(得分:0)

我在Centos 7上遇到了同样的问题。调试后,它与超时有关。

因此,如果您看到此问题并使用curl_setopt($ curl,CURLOPT_TIMEOUT_MS,300); 然后检查需要多长时间。如果是在您的超时期限附近。那是问题,与任何证书无关。

我期望Curl发生超时错误,但这似乎没有发生。