PHP 在 Laragon 下 - SSL 操作失败,代码为 1

PHP under Laragon - SSL operation failed with code 1

我在 Windows 10 上使用 Laragon 4.0.16 在 PHP.

中开发

我使用 Laragon 工具启用了 SSL:

还添加了 laragon.crt 到信任库。

我可以在 https://project.test 正确访问我的测试项目。

但是,有一个问题:

Warning: getimagesize(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed

我一直在阅读解决此类问题的方法是设置 curl.cainfoopenssl.cafile在 PHP ini 配置文件中。

我这样做了,在 Laragon 全局 php.ini 位于 C:\laragon\bin\php\php-xxx\php.ini:

curl.cainfo = "C:\laragon\etc\ssl\cacert.pem"
openssl.cafile = "C:\laragon\etc\ssl\cacert.pem"

但是在重新启动 Laragon 后,php 警告仍然存在。

我还能做些什么来追踪并解决问题?

谢谢。

我花了几个小时尝试解决这个问题。 我找到的所有解决方案都说明了以下内容:

  • https://curl.haxx.se/ca/cacert.pem 下载 cacert 并替换 laragon/etc/ssl/
  • 中的
  • 将php.ini中的openssl.cafile设置为laragon\etc\ssl\laragon.crt(例如openssl.cafile= "C:\laragon\etc\ssl\laragon.crt")

一点帮助也没有。实际起作用的是切换到 php 7.3(我的代码不能 运行 7.4,我 运行 会出现不同的错误)。 原因似乎是 php 7.2.19 php_openssl.dll 的版本为 1.1.1b,7.3 及更高版本的 php_openssl.dll 的版本为 1.1.1k。

终于解决了这个问题。我希望这能帮助某人几个小时的疯狂。我不确定这是否会在 php 的未来版本中再次发生:)