Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从CURL到PHP CURL的转换_Php_Ssl_Curl - Fatal编程技术网

从CURL到PHP CURL的转换

从CURL到PHP CURL的转换,php,ssl,curl,Php,Ssl,Curl,我正在运行下面的Curl请求,它正在工作 curl -v --cert /path/to/certs/myCert.crt --key /path/to/key/myKey.key --cacert /path/to/chainedcerts/intermediary.pem https://mysite:30009/ 将其转换为php,如下所示,失败的原因是错误77,没有叙述。我想可能是文件权限的问题。我正在使用nginx,3个证书归nginx用户所有。如果有其他方法,我可以像查看其他错

我正在运行下面的Curl请求,它正在工作

curl -v --cert /path/to/certs/myCert.crt --key  /path/to/key/myKey.key --cacert /path/to/chainedcerts/intermediary.pem  https://mysite:30009/
将其转换为php,如下所示,失败的原因是错误77,没有叙述。我想可能是文件权限的问题。我正在使用nginx,3个证书归nginx用户所有。如果有其他方法,我可以像查看其他错误一样查看错误描述

$ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch,CURLOPT_POST,1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, "xmlRequest=" . $xml);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300);
        curl_setopt($ch, CURLOPT_HTTPHEADER, ['Expect:','Content-Type: text/xml']);
        curl_setopt($ch, CURLOPT_VERBOSE, 1);
        curl_setopt($ch, CURLOPT_SSLCERT,  "/path/to/certs/myCert.crt");
        curl_setopt($ch, CURLOPT_SSLKEY,  "/path/to/key/myKey.key");
        curl_setopt($ch, CURLOPT_CAINFO, "/path/to/chainedcerts/intermediary.pem "); 
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
        $data = curl_exec($ch);
        $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        Log::error($httpcode .' : '. curl_errno($ch) .' : '. curl_error($ch));
        curl_close($ch);

这是一个验证证书的问题。它是自签名证书吗?如果是,请不要验证对等方/主机,将这些设置为false。它是自签名的。当我将verify peer/host设置为false时,我担心MITM攻击。但不管怎样,我都会出错。35未找到客户端证书35?你说你的错误是77@delboy1978uk当我将值设置为false时。错误变为35。问题是我要发布到的API服务器正在使用自签名SSL。