php - 带有自签名证书的 MAMP 中的 file_get_contents 失败
问题描述
我使用 file_get_contents() 在我的网站中包含 svg 文件。通常这在 http 上运行良好,但我将此站点设置为在本地使用 https。当我这样做时,我收到此错误:
Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed on line 226
Warning: file_get_contents(): Failed to enable crypto on line 226
据我所知,这是因为证书是自签名的。我找到了一个在文件获取内容上禁用 SSL 检查的本地解决方案。我使用 cURL 发现了类似的东西。然而,这似乎是一个安全漏洞。有没有办法在不禁用 file_get_contents 或 cURL 中的 SSL 检查的情况下完成这项工作?
解决方案
您需要允许使用自签名证书。为此,您需要定义一个自定义流上下文。
例子:
file_get_contents(
'https://self-signed.badssl.com/',
false,
stream_context_create([
'ssl' => [
'allow_self_signed'=> true
]
])
);
推荐阅读
- ios - Decodable value String or Bool
- visual-studio - Azure Function App = 在本地运行单个 Azure Function 以进行调试
- image - 在 woocommerce 电子邮件中获取 sku 和产品图片
- reactjs - CDN 上的 SSR 渲染保存包
- actionscript-3 - AS3。MouseEvent click in (for) 循环函数
- openssl - OpenSSL 偶尔会生成错误的签名
- python - Python 3:TypeError:不能将序列乘以“float”类型的非整数
- javascript - React App 中的倒计时似乎呈指数级倒计时
- nlp - 使用 spacy 的表格数据
- python - 比较不同分辨率的 pandas 时间戳