【发布时间】:2013-08-15 15:08:59
【问题描述】:
我正在尝试使用stream_socket_server() 创建一个套接字服务器。
正常连接工作正常,但我想制作一个无需证书即可加密连接的服务器。我知道这可以使用 ADH 密码来完成,是的,我知道它在理论上不如使用证书安全...
我首先制作这个服务器的原因是为了模拟一个客户端连接到的不同服务器(如果你想知道,通过this protocol)。
客户端被配置为首先请求证书,然后回退到 ADH - 我已经用真实的东西对其进行了测试,它连接没有问题,所以问题出在套接字服务器上。
到目前为止,我所做的一切都导致了“握手失败”错误。
我尝试过的一些配置:
<?php
$server = stream_socket_server(
"tls://127.0.0.1:6667",
$errorno,
$errstr,
STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,
stream_context_create(
array('ssl' => array('ciphers' => 'ADH'))
)
);
?>
<?php
$server = stream_socket_server(
"tls://127.0.0.1:6667",
$errorno,
$errstr,
STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,
stream_context_create(
array('ssl' => array('ciphers' => '-COMPLEMENTOFALL ADH'))
)
);
?>
我还尝试将客户端调整为无条件使用 ADH(如上面的第二个示例),只是为了测试,但这也失败了。
我尝试过的每个 PHP 版本都会出现这种情况,其中最新的是 5.5.0。
有什么想法吗?
【问题讨论】:
-
@krishna 那篇文章甚至没有提到加密,鉴于未加密的连接工作正常,它根本没有帮助。