Php fsockopen()和SSL错误,';未能启用加密';

Php fsockopen()和SSL错误,';未能启用加密';,php,ssl,openssl,nominet,epp,Php,Ssl,Openssl,Nominet,Epp,我正在尝试连接到Nominet EPP测试平台,但我收到了一个“未能启用加密”错误,这似乎是一个罕见的错误,没有记录在案的解决方案或原因 用这句话: $socket = fsockopen('ssl://testbed-epp.nominet.org.uk', 700, $errno, $errst, 10); 我得到的确切错误是: Warning: fsockopen() [function.fsockopen]: Failed to enable crypto in /path/class

我正在尝试连接到Nominet EPP测试平台,但我收到了一个“未能启用加密”错误,这似乎是一个罕见的错误,没有记录在案的解决方案或原因

用这句话:

$socket = fsockopen('ssl://testbed-epp.nominet.org.uk', 700, $errno, $errst, 10);
我得到的确切错误是:

Warning: fsockopen() [function.fsockopen]: Failed to enable crypto in /path/classes/nominet_epp.class.php on line 53

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://testbed-epp.nominet.org.uk:700 (Unknown error) in /path/classes/nominet_epp.class.php on line 53
据我所知,OpenSSL是与PHP一起安装的,正如我们的phpinfo()中所述:

Nominet文档简要提到“为了验证安全服务器的身份,您需要Verisign Class 3公共主证书颁发机构的根证书,该证书可从www.Verisign.com免费获得(该证书也在大多数web浏览器中分发)。-这可能是问题所在

更新 根据请求,我已对错误值以及$socket本身进行了var_转储,它们都是false/0。状态为“如果errno中返回的值为0,而函数返回false,则表明错误发生在connect()调用之前。这很可能是由于初始化套接字时出现问题。”


任何帮助都将不胜感激。

我遇到了完全相同的问题,原因是Nominet防火墙没有使用正确的IP地址进行更新。当您在Nominet控制面板中设置此项时,您需要等待一个小时,等待他们的防火墙完全更新-一旦完成,连接工作正常。

请打印
$errno
$errst
?我刚刚在控制台上转储了$socket、$errst和$errno,它们分别为假、空和0。奇怪。你能试试
openssl s_客户端-ssl3-crlf-connect测试床epp.nominet.org.uk:700
?返回:1409E0E5:SSL例程:ssl3\u写入字节:SSL握手失败:s3\u pkt.c:530:似乎是个错误您的OpenSSL或远程系统有问题…您可以排除该选项吗?
OpenSSL support     enabled
OpenSSL Version     OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008