Php 卷曲在控制台中工作,但在浏览器中不工作

Php 卷曲在控制台中工作,但在浏览器中不工作,php,ssl,curl,Php,Ssl,Curl,此脚本在控制台“php simple.php”中工作 但此脚本在浏览器中不起作用 布尔假 字符串“NSS:未找到证书的私钥:PEM令牌#1:client.PEM”(长度=67) 请帮忙 $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'hello_world'); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_

此脚本在控制台“php simple.php”中工作 但此脚本在浏览器中不起作用

布尔假

字符串“NSS:未找到证书的私钥:PEM令牌#1:client.PEM”(长度=67)

请帮忙

  $curl = curl_init();

  curl_setopt($curl, CURLOPT_URL, 'hello_world');
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

  curl_setopt($curl, CURLOPT_CAINFO, getcwd().'/ca.pem');
  curl_setopt($curl, CURLOPT_SSLCERT, getcwd().'/client.pem');
  curl_setopt($curl, CURLOPT_SSLKEY, getcwd().'/key.pem');

  $post = array(
    // ...
  );

  curl_setopt($curl, CURLOPT_POST, 1);
  curl_setopt($curl, CURLOPT_POSTFIELDS, join('&', $post));

  $curl_result = curl_exec($curl);
  $error = curl_error($curl);

  var_dump($curl_result);
  var_dump($error);

  curl_close($curl);
` cd/path/to/simple.php;ls-la -rwxrwx 1 ujin apache 1.4K Jan 19:03 simple.php -rw-r--r--1乌金阿帕奇2.6K一月19日15:58 ca.pem -rw-r--r--1 ujin apache 1.6K Jan 19 15:59 client.pem -rw-r--r--1 ujin apache 1.1K Jan 19 16:18 key.pem `
您的脚本找不到ca.pem和好友。有些东西可以试试

  • 放入绝对路径
  • 确保Web服务器进程的访问权限正常
告诉我们,那个卷发需要一条绝对路径

编辑(与@UJin讨论后):

请尝试绝对路径:

` cd /path/to/simple.php; ls -la -rwxrwxrwx 1 ujin apache 1.4K Jan 19 19:03 simple.php -rw-r--r-- 1 ujin apache 2.6K Jan 19 15:58 ca.pem -rw-r--r-- 1 ujin apache 1.6K Jan 19 15:59 client.pem -rw-r--r-- 1 ujin apache 1.1K Jan 19 16:18 key.pem `
请详细说明:您更改了什么(更新了OQ)并更改了抛出的错误?请发布“cd/path/to/simple.php;ls-lah”-rwxrwx 1 ujin apache 1.4K Jan 19 18:51 simple.php这证明了ca.pem和friends的路径是错误的:在simple.php中,如果您执行“curl_setopt($curl,CURLOPT_CAINFO,'ca.pem');”,ca.pem必须与simple.php位于同一目录中,而不是。那么你的ca.pem和朋友在哪里?请,乌金更合作一点:你改变了什么?修复了!禁用代理并重新启动httpd。谢谢你的帮助!
  $curl = curl_init();
  curl_setopt($curl, CURLOPT_URL, 'hello_world');
  curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

  $cwd=getcwd();

  //DEBUG
  echo "cwd=$cwd\n";

  curl_setopt($curl, CURLOPT_CAINFO, "$cwd/ca.pem");
  curl_setopt($curl, CURLOPT_SSLCERT, "$cwd/client.pem");
  curl_setopt($curl, CURLOPT_SSLKEY, "$cwd/key.pem");