2012-01-23 4 views
4

Я собираюсь подключиться к безопасному серверу EPP и отправить XML-запрос, а затем снова получить ответ в формате XML.Подключитесь к серверу EPP с PHP, используя SSL

Мне нужно сделать это на PHP. Поэтому мне нужно подключиться к серверу EPP на определенном порту через TCP, используя SSL-сертификат (так как это информация, которую я до сих пор, все еще ожидаю, чтобы настроить белый IP-адрес и отправить мне сертификат).

Так что мой вопрос может показаться немного глупым, но мне нужно использовать fsockopen или cURL для подключения, как определить, что мне нужно использовать SSL, и как я могу определить и использовать этот сертификат SSL вместе с этим.

Буду признателен за любую помощь по этому вопросу.

Спасибо.

+1

Вы выполнили эту задачу? – Cindrella

ответ

2

Ну, вы просто инициализации локон, набор опций и 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

+0

Спасибо, @Snifff. Только один вопрос о последующей работе, поскольку мне нужно подключиться к определенному порту (700), я просто указываю это с curl_setopt, верно? – Vlad

+0

Да, используйте CURLOPT_PORT, например curl_setopt ($ handle, CURLOPT_PORT, 700); Но вы также можете просто указать его в своем URL-адресе, либо в curl_init, либо в CURLOPT_URL. – Snifff

0

локон с чем-то вроде

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, 

должен сделать трюк

+0

Спасибо. Я сделаю это. Ценить это. – Vlad

-1
<?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); 

} 

?>