声明 : 一开始我想声明,我很清楚(并想告诉其他人)这不是正确的做事方式。如果找到了灵魂,请使用它作为最后的手段。
我的问题是弱算法。并且找不到跳过检查的方法。
向我公开端点的公司表示它是安全的,他们不会升级 SSL 证书。我知道这是不安全的,但不能做任何事情,必须服从他们的决定。
错误我得到 file_get_contents(): SSL operation failed with code 1. OpenSSL 错误消息: error:14082174:SSL routines:ssl3_check_cert_and_algorithm:dh key too small
和 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));
在浏览器 i ge
SSL_ERROR_WEAK_SERVER_EPHEMERAL_DH_KEY
以及关于弱的信息Diffie Hellman
key 。我正在寻找一种禁用此检查的方法。
最好通过我可以在
SoapClient
中使用的 streamContext
最佳答案
您需要禁用 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
)
);
关于php - 忽略 PHP streamcontext/curl/soap 中的弱 SSL 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48550872/