Как подписать запрос отправляемый curl + php своим собственным crt-сертификатом?
26.05.03 20:21: Перенесено модератором из 'RSDN Desktop' — DI
--- Wake up, Neo. The Matrix has you
Здравствуйте, youngVAN, Вы писали:
VAN>Как подписать запрос отправляемый curl + php своим собственным crt-сертификатом?
может лучше посмотреть использование функции
fsockopen
As of PHP 4.3.0, if you have compiled in OpenSSL support, you may prefix the hostname with either 'ssl://' or 'tls://' to use an SSL or TLS client connection over TCP/IP to connect to the remote host.
... << RSDN@Home 1.0 beta 7a >>
--- Wake up, Neo. The Matrix has you
Здравствуйте, youngVAN, Вы писали:
VAN>>Как подписать запрос отправляемый curl + php своим собственным crt-сертификатом?
A>может лучше посмотреть использование функции fsockopen
VAN>Если ты расскажешь как передать сертификат по сокету, я не против
Если у тебя PHP скомпилирован с OpenSSL, то код для пересылки данных по SSL будет такой
(код вырезан из работающего примера, немного подправленный. Хедеры какие отправлять на твое усмотрение)
$IPAddress = gethostbyname($request_host);
if ($use_ssl) {
$host = fsockopen("ssl://" . $IPAddress, 443, $errno, $errstr);
}
else {
$host = fsockopen($IPAddress, 80, $errno, $errstr);
}
if (!$host) {
print "Socket connect failed.\nReason: $request_host " . $errstr . "\n";
}
else {
$Header_in = "GET /index.html HTTP/1.0\r\n";
$Header_in .= "Host: $request_host\r\n";
$Header_in .= "Cache-Control: no-cache\r\n";
$Header_in .= "Connection: Close\r\n";
$Header_in .= "\r\n";
#Sending HTTP request
fputs($host, $Header_in, strlen($Header_in));
$out = "";
while (!feof($host)) $out .= fread($host, 1024);
#Closing socket
fclose ($host);
print $out;
}
Конечно чтоб удаленный хост тоже работал по SSL

... << RSDN@Home 1.0 beta 7a >>
Здравствуйте, youngVAN, Вы писали:
VAN>>Как подписать запрос отправляемый curl + php своим собственным crt-сертификатом?
Вообще-то передача через curl какго-то своего сертификата, будет выглядеть примерно так
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt ($ch, CURLOPT_SSLCERT, "("/src/openssl-0.9.6/demos/sign/key.pem");
curl_setopt ($ch, CURLOPT_SSLCERTPASSWD, "password");
curl_exec ($ch);
curl_close ($ch);
CURLOPT_SSLCERT: Pass a string containing the filename of PEM formatted certificate.
CURLOPT_SSLCERTPASSWD: Pass a string containing the password required to use the CURLOPT_SSLCERT certificate.
в хелпе по функции curl_setopt подробно расписаны все опции. Думаю вы это хочетели.
... << RSDN@Home 1.0 beta 7a >>