我即將連接到安全的EPP服務器併發送XML請求,然後再次以XML格式接收響應。使用SSL連接到使用SSL的EPP服務器
我需要在PHP中這樣做。因此,我需要使用SSL證書通過TCP連接到特定端口上的EPP服務器(因爲這是我目前爲止的信息,仍然在等待將IP列入白名單並向我發送證書)。
所以我的問題似乎有點愚蠢,但我需要使用fsockopen或cURL來連接,我如何定義我需要使用SSL,以及如何定義和使用此SSL證書。
我會很感激任何關於此事的幫助。
謝謝。
我即將連接到安全的EPP服務器併發送XML請求,然後再次以XML格式接收響應。使用SSL連接到使用SSL的EPP服務器
我需要在PHP中這樣做。因此,我需要使用SSL證書通過TCP連接到特定端口上的EPP服務器(因爲這是我目前爲止的信息,仍然在等待將IP列入白名單並向我發送證書)。
所以我的問題似乎有點愚蠢,但我需要使用fsockopen或cURL來連接,我如何定義我需要使用SSL,以及如何定義和使用此SSL證書。
我會很感激任何關於此事的幫助。
謝謝。
嗯,你只是初始化捲曲,設置選項和exec捲曲要求:
$url="your_url";
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL,$url);
curl_setopt($handle, CURLOPT_SSLCERT, $sslcertpath); //$sslcertpath - path to your certificate file
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, true); //may want to set false for debugging
//[...]
$response = curl_exec($handle);
curl_close($handle);
var_dump($response);
你可以找到一個完整列表捲曲選項: curl_setopt manual
的東西捲曲狀
CURLOPT_CAINFO=>YOUR_CAINFO_PATH,
CURLOPT_SSLCERT=>YOUR_CERT_PATH,
CURLOPT_SSLCERTPASSWD=>YOUR_CERT_PWD_IF_NECESSARY,
CURLOPT_FOLLOWLOCATION=>1,
CURLOPT_TIMEOUT=>YOUR_HTTPS_TIMEOUT,
應該做的伎倆
謝謝。我會給它一個鏡頭。欣賞它。 – Vlad
<?php
$epp_server = 'ote-console.centralnic.com'; $port = 700; $verify_peer = 0;
//$epp_server = 'epp.ispapi.net'; $port = 1700; $verify_peer = 0;
//$epp_server = 'epp.test.norid.no'; $port = 700; $verify_peer = 0;
//$epp_server = 'epp-test.rotld.ro'; $port = 5555; $verify_peer = 0; // SSLv3
$opts = array(
'ssl' => array(
'verify_peer' => $verify_peer,
'cafile' => "/CAfiles/gd_bundle.crt",
'local_cert' => "/certs/certificate.cer",
'passphrase' => 'YourCertificatePasswordHere'
)
);
$context = stream_context_create($opts);
// TLSv1
$fp = stream_socket_client("tls://$epp_server:$port", $errno, $errstr, 1, STREAM_CLIENT_CONNECT, $context);
// SSLv3
//$fp = stream_socket_client("sslv3://$epp_server:$port", $errno, $errstr, 1, STREAM_CLIENT_CONNECT, $context);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
}
else {
fwrite($fp, "GET/HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
while (!feof($fp)) {
echo fgets($fp, 1024);
}
fclose($fp);
}
?>
你完成了這項任務嗎? – Cindrella