首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SSL通过PHP连接到EPP服务器

使用SSL通过PHP连接到EPP服务器
EN

Stack Overflow用户
提问于 2012-01-23 23:16:21
回答 3查看 5.4K关注 0票数 4

我将连接到一个安全的EPP服务器,发送一个XML请求,然后再次接收XML格式的响应。

我需要在PHP中做到这一点。因此,我需要使用SSL证书通过TCP连接到特定端口上的EPP服务器(因为这是我到目前为止拥有的信息,仍在等待将我的IP列入白名单并将证书发送给我)。

所以我的问题可能看起来有点愚蠢,但是我需要使用fsockopen还是cURL来连接,我如何定义我需要使用SSL,以及我如何定义和使用这个SSL证书?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-23 23:41:46

那么,您只需初始化curl、set options和exec curl请求:

代码语言:javascript
复制
$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选项的完整列表:curl_setopt manual

票数 2
EN

Stack Overflow用户

发布于 2012-01-23 23:26:41

卷曲,像这样

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2012-03-27 14:25:47

代码语言:javascript
复制
<?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);

}

?>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8973880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档