gpt4 book ai didi

php - fsockopen 无法连接 SSL (HTTPS) url。使用 Gallery 3 上传图片时

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:26 26 4
gpt4 key购买 nike

我正在使用 Gallery 3 上传图片。当我使用 https://domain上传工作正常。但是当我使用 https://domain Gallery3 无法建立连接。

Errors : **fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in fileName** 

**fsockopen(): Failed to enable crypto in finleName**

**fsockopen(): unable to connect to ssl://domain:443 (Unknown error) in /**

观察结果如下:

  1. 要连接的 URL 变为 ssl://domain,端口为 443
  2. fsockopen 无法建立连接并抛出错误。

出了什么问题?我的服务器上有一个有效的 https 证书,并且还安装了 openssl。

还有什么要求吗?

最佳答案

PHP 5.6+ updated the default ciphers基于 Mozilla cipher recommendations .关于 RFC for improving tls defaults 中使用的密码有更多详细信息。 .总体而言,此更改删除了对匿名 Diffie-Hellman 和 RC4 的支持,很可能您的服务器仍在使用 RC4。

有两种选择:

  1. 根据 Mozilla ciper 推荐更新您的服务器使用的密码
  2. 更新 gallery3 代码以使用 RC4,因为它自 2013 年以来就没有更新过,您可以不用太担心地执行此选项

对于选项 2,调用似乎是在第 73/74 行的 gallery3/modules/gallery/helpers/MY_remote.php 中完成的:

$handle = fsockopen(
$url_components['fsockhost'], $url_components['port'], $errno, $errstr, 5);

您可以将其更改为使用 stream_socket_clientfsockopen 兼容:

$context = stream_context_create(['ssl' => [
'ciphers' => 'RC4-MD5'
]]);
$timeout = ini_get('default_socket_timeout');

$handle = stream_socket_client('ssl://' . $url_components['fsockhost'] . ':' . $url_components['port'], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $context);

关于php - fsockopen 无法连接 SSL (HTTPS) url。使用 Gallery 3 上传图片时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44498417/

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