声明:一开始我想说的是,我很清楚(并且想通知其他人)这不是正确的做事方式。如果发现了灵魂,请将其作为最后的手段使用。
我的问题是弱算法。并且无法找到跳过支票的方法 暴露我端点的公司表示它是安全的,并且他们不会升级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
答案 0 :(得分:0)
您需要禁用Diffie Hellman验证:
$context = stream_context_create(array(
'ssl' => array(
'ciphers' => 'DEFAULT:!DH',
...
如果需要禁用证书的验证,则需要:
$context = stream_context_create(array(
'ssl' => array(
'ciphers' => 'DEFAULT:!DH',
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);