0

那是我的脚本

<?php
    $timeout = 10;
    $target = "tls://testbed-epp.nominet.org.uk:700";

    $result = stream_socket_client($target, $errno, $errstr, 30, STREAM_CLIENT_CONNECT);
    if ($result === False) {
        throw new Exception("Error connecting to $target: $errstr (code $errno)");

    }

    echo "Connected";

它抛出一个异常

Error connecting to tls://testbed-epp.nominet.org.uk:700: (code 0)

还有一个警告

WARNING: stream_socket_client(): Failed to enable crypto

同时运行

 openssl s_client -connect testbed-epp.nominet.org.uk:700

在终端完美连接。

任何想法将不胜感激

4

3 回答 3

1

试试这个:

$result = stream_socket_client("testbed-epp.nominet.org.uk:700", $errno, $errstr);

编辑:您也可以通过stream_socket_enable_crypto()函数设置安全连接,但您应该注意,它必须在套接字连接初始化之后使用。

于 2013-09-27T14:14:21.500 回答
1

好吧,我在我的 apache 服务器上测试了你的代码,它工作正常。你能检查你的apache配置吗?在配置中有一个名为"Registered Stream Socket Transports ". 只需检查那里是否tls作为值存在,否则还有其他问题,但绝对不是您的脚本

于 2013-09-27T14:22:06.213 回答
0
$timeout =- 10;
          ^----

您设置$timeout为负 10 秒。例如,您在连接尝试开始之前就终止了它。

于 2013-09-27T14:12:28.073 回答