file_get_contents访问https网址返回false的解决办法

背景

php的file_get_contents函数,在服务器(windows server2008)上请求https的网址时,报错,但在本地计算机是可以运行的,放到服务器上则不行。

原因

Windows Server 2008 的内置根证书太旧了,无法识别现代网站的证书(如 Let’s Encrypt)。

解决办法

下载最新的证书文件:cacert.pem
将其保存到服务器某个路径(例如 C:\php\extras\ssl\cacert.pem)。
修改 php.ini,找到 openssl.cafile 配置项:

openssl.cafile="C:\php\extras\ssl\cacert.pem"

重启 Web 服务。

发表评论

邮箱地址不会被公开。 必填项已用*标注