php - 忽略 PHP streamcontext/curl/soap 中的弱 SSL 算法

标签 php ssl soap diffie-hellman

声明 : 一开始我想声明,我很清楚(并想告诉其他人)这不是正确的做事方式。如果找到了灵魂,请使用它作为最后的手段。

我的问题是弱算法。并且找不到跳过检查的方法。
向我公开端点的公司表示它是安全的,他们不会升级 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/

相关文章:

php - 互联网速度对 PHP/MySQL 执行的影响

php - 如何在PHP中加密和解密图像文件?

php - 使用 procmail 调用 php 脚本

node.js - Node Js SOAP 模块 - 超时选项

c# - 如何通过注册的联系人 ID 获取所有 Cvent 事件?

php mysql 搜索今天日期的开始和结束日期字段(如果它落在范围内)

security - 带有 ssl HTTP 代理和数字证书的 Spring ws

python - SSL 错误 : routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

apache - Heroku 上的 SSL 重定向配置在访问根域时导致错误 403(禁止访问)

wcf - WCF 客户端调用单向操作的问题