fsockopen()和SSL出错,'无法启用加密'

时间:2011-03-31 10:35:01

标签: 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/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()所示:

OpenSSL support     enabled
OpenSSL Version     OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

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

更新 根据要求,我有var_dump的错误值以及$ socket本身,它们都是false / 0。 fsockopen PHP docs状态“如果errno中返回的值为0且函数返回FALSE,则表示错误发生在connect()调用之前。这很可能是由于初始化时出现问题插座。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

我遇到了完全相同的问题,而且Nominet防火墙没有使用正确的IP地址进行更新。当您在Nominet控制面板中进行设置时,需要等待一小时才能使防火墙完全更新 - 一旦完成,连接就可以正常工作。