使用cURL和PHP发送客户端证书

时间:2013-05-24 14:10:13

标签: php curl ssl ssl-certificate client-certificates

我正在尝试向需要身份验证的网址发送cURL请求。但是我在用它发送客户端证书时遇到了麻烦。

返回错误

unable to set private key file: 'privkeyfile.pem' type PEM

脚本看起来像这样:

$url = "correcturltosendrequest.com";
$post_string = "string of SOAP tags";

$keyFile = realpath("privkeyfile.pem");
$caFile = realpath("cafile.pem");
$certFile = realpath("pubkeyfile.pem");
$certPass = "pasword";

$soap_do = curl_init(); 
curl_setopt($soap_do, CURLOPT_URL,            $url );   
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
curl_setopt($soap_do, CURLOPT_SSLKEY, $keyFile);
curl_setopt($soap_do, CURLOPT_CAINFO, $caFile);
curl_setopt($soap_do, CURLOPT_SSLCERT, $certFile);
curl_setopt($soap_do, CURLOPT_SSLCERTPASSWD, $certPass);
curl_setopt($soap_do, CURLOPT_POST,           true ); 
curl_setopt($soap_do, CURLOPT_POSTFIELDS,    $post_string); 
curl_setopt($soap_do, CURLOPT_HTTPHEADER,     array('Content-Type: text/xml; charset=utf-8', 'Content-Length: '.strlen($post_string) )); 

$result = curl_exec($soap_do);
$err = curl_error($soap_do); 

我的谷歌搜索告诉我,这是脚本无法访问有问题的文件(realpath返回完整正确的路径。已设置所有人访问该文件夹。如果有所不同,立即在EasyPHP中运行)。 ..

或者我只是对这些证书文件做错了。不幸的是,我对pem文件的了解最多也是有限的。

我可以使用以下PEM文件:

  • 公钥
  • 私钥
  • 根CA
  • 中间CA

非常感谢任何帮助或建议。

0 个答案:

没有答案
相关问题