如何解决带有pem和密钥的php CURL请求的路径问题
我在基于 IIS Windows 的服务器中使用带有第三方 pem 证书的 curl 请求:
$userAgent = 'Third party name';
$headers = array(
"SOAPAction:","Content-Type: text/xml; charset = utf-8","Connection: close"
);
$cURL = curl_init();
curl_setopt($cURL,CURLOPT_HEADER,false);
curl_setopt($cURL,CURLOPT_HTTPHEADER,$headers);
curl_setopt($cURL,CURLOPT_POST,true);
curl_setopt($cURL,CURLOPT_URL,$this->baseURL());
curl_setopt($cURL,CURLOPT_USERAGENT,$userAgent);
curl_setopt($cURL,CURLOPT_POSTFIELDS,$soap);
curl_setopt($cURL,CURLOPT_RETURNTRANSFER,CURLOPT_ENCODING,"UTF-8");
curl_setopt($cURL,CURLOPT_SSL_VERIFYHOST,CURLOPT_SSL_VERIFYPEER,CURLOPT_SSLCERT,$certificateURL);
curl_setopt($cURL,CURLOPT_SSLCERTPASSWD,$this->certPass);
$response = curl_exec($cURL);
curl_close($cURL);
return $response;
windows 中的 $certificateURL 是
$certificateURL = "C:/inetpub/wwwroot/api/kx2.pem"
它运行良好。
现在已转移到 Linux 服务器,我为此使用了 plesk,cert pem 文件与代码位于同一目录中,但这里是我分配的
$certificateURL to "./kx2.pem" and to "/var/www/vhosts/domain.com/httpdocs/api/kx2.pem"
它不起作用,it gives error msg "could not load PEM client certificate,OpenSSL error error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small,(no key found,wrong pass phrase,or wrong file format?)"
我应该怎么做我已经尝试了很多事情改变了整个 curl 请求甚至尝试了基于 __DIR__
的 url?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。