Php fsockopen()和SSL错误,';未能启用加密';
我正在尝试连接到Nominet EPP测试平台,但我收到了一个“未能启用加密”错误,这似乎是一个罕见的错误,没有记录在案的解决方案或原因 用这句话: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
$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