微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过PHP发送一个curl请求和pem证书?

我在我的Apache服务器有一个PHP脚本,必须发送curl请求到合作伙伴的服务器。 合作伙伴给我一个.pem文件,我必须附加到我对其api的每个调用

我的PHP脚本是如下:

$ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_SSLCERT,"test.pem" ); curl_setopt($ch,CURLOPT_SSLCERTTYPE,"PEM"); curl_setopt($ch,CURLOPT_RETURNTRANSFER,True); curl_setopt($ch,CURLOPT_POST,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch,CURLOPT_POSTFIELDS,$json); curl_setopt($ch,CURLOPT_VERBOSE,true); $result = curl_exec($ch); if(!$result) { echo "Curl Error: " . curl_error($ch); } else { echo "Success: ". $result; } curl_close($ch);

它返回:

curl错误:无法设置私钥文件:'test.pem'type PEM

NoClassDefFoundError:org / apache / commons / lang3 / StringUtils

在Windows上构buildhadoop 2.2

在Apache启动/重新启动(Windows Server)的后台运行PHP脚本

如何在Phonegap / Cordova中使用鼠标事件?

我在哪里可以下载org.apache.Http包的jar?

考虑它发送.pem文件,并说“它没有密码

Apache Mesos,mesospheredcos有什么区别?

在Windows 8上启用CORS

我怎么知道哪个文件系统的Ap​​ache无法访问在Windows上?

Apache和Nodejs跨域ajax问题

我怎样才能在.htaccess文件中引用$ _SERVER ?

我认为你需要使用tmpfile()和stream_get_Meta_data 。

$pemFile = tmpfile(); fwrite($pemFile,"test.pem");//the path for the pem file $tempPemPath = stream_get_Meta_data($pemFile); $tempPemPath = $tempPemPath['uri']; curl_setopt($ch,$tempPemPath);

来源: 这个答案在这里帮助我有类似的问题。

我想你错过了curl_setopt($ch,CURLOPT_CAINFO,'test.pem'); 看看cURL是无法使用客户端证书,在本地服务器更多关于通过PHP curl使用客户端证书

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐