在 IIS 10 中运行时,如何访问 PHP 8.3.10 中的 HTTPS URL?

问题描述 投票:0回答:1

我的服务器没有 SSL 证书以获取更多上下文。

我只在 IIS 中观察到此问题,这里有一些示例代码,您可以使用它来复制我的问题

<?php
 $ch = curl_init();
 $url = "https://example.com";
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 $response = curl_exec($ch);
 echo $response;

我只能使用 cURL 和

file_get_contents()
通过 HTTP 协议发出成功的 http 请求,但是在向 https URL 发出请求时使用
file_get_contents()
时会出现错误,而在使用 cURL 向 https URL 发出请求时则不会出现任何错误。

我试图搞乱

openssl.cafile
curl.cainfo
,但从这个答案没有成功。

还要在

allow_url_fopen = On
中设置
allow_url_include = On
php.ini
并根据 此 PHP 文档

启用 php openSSL 扩展

不过,我只在 IIS 下运行的 PHP 文档中观察到此问题。在 PHP 交互式 shell 中,它按预期工作。

这是我的

php.ini
(如果有帮助)和我的
web

php http ssl curl iis
1个回答
0
投票

事实证明,我必须将 openssl.cafile

curl.cainfo
 设置为 
cacert.pem 文件,您可以在此处获取,当您在 IIS 中运行 PHP 时,您必须
提供当前应用程序池标识对证书的读取权限这样PHP的配置实际上可以读取它。

© www.soinside.com 2019 - 2024. All rights reserved.