【发布时间】:2011-12-19 00:32:37
【问题描述】:
我有一个 CERT 和私钥文件。我正在使用 cUrl 和 PHP 连接到另一个服务。目前,我已经在文件中获得证书和密钥,并且使用以下代码可以正常工作:
$pemfile = "cert.pem";
$keyfile = "private_key.key";
$url = "someTestUrl";
$requestXml = "requestData";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_SSLCERT, $pemfile);
curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');
curl_setopt($ch, CURLOPT_SSLKEY, $keyfile);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXml);
$ret = curl_exec($ch);
我的问题是:我可以将证书和密钥作为字符串传递而不是作为文件传递吗?我尝试简单地将各个文件的内容作为字符串传递,如下所示:
$pemfile = "-----BEGIN CERTIFICATE-----CERTDATAASSTRING-----END CERTIFICATE-----";
$keyfile = "-----BEGIN RSA PRIVATE KEY-----PRIVATEKEYINCODE-----END RSA PRIVATE KEY-----";
...不用说...它没有工作:(
有什么想法吗?指针?建议???
【问题讨论】:
-
请问您提供的是哪个
.key文件?我只有.pem文件。
标签: php ssl curl https ssl-certificate