【发布时间】:2018-07-11 01:50:55
【问题描述】:
声明:一开始我想声明,我很清楚(并想告知其他人)这不是正确的做事方式。如果找到了灵魂,将其作为最后的手段。
我的问题是弱算法。并且找不到跳过检查的方法。
向我公开端点的公司表示它是安全的,他们不会升级 SSL 证书。我知道这是不安全的,但我无能为力,必须服从他们的决定。
我得到错误 file_get_contents():SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:14082174:SSL 例程:ssl3_check_cert_and_algorithm:dh 密钥太小
和 file_get_contents():无法在...中启用加密
我的代码是:
$context = stream_context_create([
'http' => [
'timeout' => 5,
],
'ssl' => [
// set some SSL/TLS specific options
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]);
var_dump(file_get_contents($wsdl, false, $context));
在浏览器中我得到SSL_ERROR_WEAK_SERVER_EPHEMERAL_DH_KEY 和关于弱Diffie Hellman 键的信息。
我正在寻找禁用此检查的方法。
最好通过我可以在SoapClient 中使用的streamContext
【问题讨论】:
-
而不是
file_get_contents使用 curl(),它有一个忽略 ssl 问题的标志 -
据我所知,@rtfm first curl 不适用于
soapClient。做不到。其次,curl 允许忽略对等和服务器检查,但不能忽略弱算法检查 -
我认为 curl 提供的标志与这里使用的 verify_peer 标志相同。我认为这里的问题是您的系统比他们的系统更新,并且拒绝使用它现在知道的不安全技术。为了解决这个问题,您可能需要将您的 openssl 库降级到一个过时的版本。
-
@AbraCadaver 看到那个帖子。从它我知道我必须禁用算法检查。但找不到方法
标签: php ssl soap diffie-hellman