我试图通过Centos 6系统上的PHP curl访问第三方服务,该系统附带了针对NSS而不是OpenSSL编译的curl和libcurl。这给我带来了问题,每次我尝试访问服务时,我都会得到这个错误NSS: client certificate not found (nickname not specified)。我的理解是我需要在NSS数据库中安装证书。我正在寻找一步一步的说明如何做到这一点(请记住,我需要这与PHP curl函数从Nginx服务器调用)谢啦,谢啦
NSS: client certificate not found (nickname not specified)
xxslljrj1#
我在Centos 7上也遇到了同样的问题。调试后发现与超时有关。所以如果你看到这个问题,并使用curl_setopt($curl, CURLOPT_TIMEOUT_MS, 300);,然后检查它需要多长时间。如果它是你的超时周期左右。这是问题,并没有任何证书相关。我期待一些超时错误,从 curl 的情况下超时,但似乎没有发生。
curl_setopt($curl, CURLOPT_TIMEOUT_MS, 300);
py49o6xq2#
当我试图访问一个使用简单密码认证的FTPS服务器时,输入了错误的密码,curl也出现了同样的错误信息,这与证书无关。
yqkkidmi3#
我能够通过编辑/etc/php. ini的openssl部分并向openssl证书添加方向来绕过这个错误(Centos 7,PHP 7.1.33):打开ssl.文件=/etc/ssl/证书/ca捆绑包. crt
xv8emn3q4#
请尝试在证书文件名前面加上前缀“./",或使用完整路径。如果curl是针对NSS SSL库构建的,则此选项[--cert]可以告诉curl要在由环境变量SSL_DIR(或默认情况下为/etc/pki/nssdb)定义的NSS数据库中使用的证书的昵称。如果NSS PEM PKCS#11模块(lib-nsspem.so)可用,则可以加载PEM文件。如果要使用当前目录中的文件,请在它前面加上.“/”前缀,以免与昵称混淆.(着重号是我的)或者,这里有一些导入NSS证书数据库的说明,尽管我没有使用它们:http://rcritten.fedorapeople.org/nss_compat_ossl.html
4条答案
按热度按时间xxslljrj1#
我在Centos 7上也遇到了同样的问题。调试后发现与超时有关。
所以如果你看到这个问题,并使用
curl_setopt($curl, CURLOPT_TIMEOUT_MS, 300);
,然后检查它需要多长时间。如果它是你的超时周期左右。这是问题,并没有任何证书相关。我期待一些超时错误,从 curl 的情况下超时,但似乎没有发生。
py49o6xq2#
当我试图访问一个使用简单密码认证的FTPS服务器时,输入了错误的密码,curl也出现了同样的错误信息,这与证书无关。
yqkkidmi3#
我能够通过编辑/etc/php. ini的openssl部分并向openssl证书添加方向来绕过这个错误(Centos 7,PHP 7.1.33):打开ssl.文件=/etc/ssl/证书/ca捆绑包. crt
xv8emn3q4#
请尝试在证书文件名前面加上前缀“./",或使用完整路径。
如果curl是针对NSS SSL库构建的,则此选项[--cert]可以告诉curl要在由环境变量SSL_DIR(或默认情况下为/etc/pki/nssdb)定义的NSS数据库中使用的证书的昵称。如果NSS PEM PKCS#11模块(lib-nsspem.so)可用,则可以加载PEM文件。如果要使用当前目录中的文件,请在它前面加上.“/”前缀,以免与昵称混淆.
(着重号是我的)
或者,这里有一些导入NSS证书数据库的说明,尽管我没有使用它们:http://rcritten.fedorapeople.org/nss_compat_ossl.html