gpt4 book ai didi

php - 如何使 fsockopen 在使用 tls 时忽略证书

转载 作者:太空宇宙 更新时间:2023-11-03 12:56:44 27 4
gpt4 key购买 nike

在PHP7.0中,使用fsockopen连接时会开启一个https连接(托管在同一个主机),使用像 tls://foo.localhost 这样的主机名,我收到一个错误看起来像

fsockopen(): Peer certificate CN="bar" did not match expected CN="foo.localhost"

连接未打开。

相同的代码在 PHP 5.5 中有效(验证验证的检查不太严格)。我愿意不太关心验证证书(此代码在单元测试中运行并且集成套件,仅连接到本地主机)。需要运行测试不过是 http 和 https。

我知道如何在使用 file_get_contents 时禁用这些检查。

如何在使用 fsockopen 时禁用对等证书验证?

最佳答案

fsockopen 不提供忽略对等证书错误的方法。

你必须使用 stream_socket_clientcontext .可用的 ssl/tls 上下文选项可用 here .

无需对等验证打开套接字的例子

$context = stream_context_create([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false
]
]);

$hostname = "tls://foo.localhost:8123";
$socket = stream_socket_client($hostname, $errno, $errstr, ini_get("default_socket_timeout"), STREAM_CLIENT_CONNECT, $context);

关于php - 如何使 fsockopen 在使用 tls 时忽略证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41934329/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com