我正在尝试连接到 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 文档简要提到“为了验证安全服务器的身份,您需要Verisign Class 3 Public Primary Certification Authority 的根证书,该证书可从 www.verisign.com 免费获得(该证书也随大多数 Web 浏览器分发)。 - 这可能是问题?
更新 按要求,我已经对错误值以及 $socket 本身进行了 var_dump,它们都是 false/0。fsockopen PHP 文档指出“如果 errno 中返回的值为 0 并且函数返回 FALSE,则表明错误发生在 connect() 调用之前。这很可能是由于初始化套接字的问题。 ”
任何帮助将不胜感激。