Tôi có tệp CERT và khóa cá nhân. Tôi đang sử dụng cUrl và PHP để kết nối với một dịch vụ khác. Tại thời điểm này, tôi đã cert và key trong các tập tin và nó hoạt động hoàn toàn tốt đẹp với đoạn mã sau:Truyền .PEM và .KEY dưới dạng chuỗi trong Curl bằng cách sử dụng 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);
Câu hỏi của tôi là: Tôi có thể vượt qua cert và key như dây đàn thay vì đi qua nó thành file? Tôi đã cố gắng đơn giản thông qua nội dung các tập tin tương ứng như dây đàn như thế này:?
$pemfile = "-----BEGIN CERTIFICATE-----CERTDATAASSTRING-----END CERTIFICATE-----";
$keyfile = "-----BEGIN RSA PRIVATE KEY-----PRIVATEKEYINCODE-----END RSA PRIVATE KEY-----";
... và không cần phải nói ... nó đã không làm việc :(
Bất kỳ ý tưởng gợi ý gợi ý ???
Tôi có thể hỏi bạn tệp '.key' nào bạn cung cấp không? Tôi chỉ có tệp '.pem'. –