我试图使用
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",stream_context_create( array('ssl' => array('ciphers' => '-COMPLEMENTOFALL ADH')) ) ); ?>
我也试图调整客户端以无条件地使用ADH(就像上面的第二个例子),只是为了测试,但是也失败了.
这发生在我尝试的每个PHP版本,最新的是5.5.0.
有任何想法吗?
我会使用像Wireshark这样的工具来检查电线上的位,以便我可以准确地确定握手时出错的情况.没有这种能力,你将要飞(或调试)盲.
原文链接:https://www.f2er.com/php/132491.html一旦你知道你的握手出了什么问题,你可以弄清楚“为什么”.