如何配置openssl与file_get_contents一起工作



我们运行一个apache2服务器,由于我们的通讯中有大量的机器人,所以希望使用google recaptcha。

因此我实现了一些开发者的php代码,这些代码通常应该可以工作…但不是在我的服务器上。我进一步调查发现,函数file_get_contents()以SSL错误结束。

file_get_contents(self::SITE_VERIFY_URL, false, $context)

您可以在下面找到服务器日志文件的摘录。

PHP Warning:  file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:nerror:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in /var/www/html/app/lib/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Post.php on line 68
PHP Warning:  file_get_contents(): Failed to enable crypto in /var/www/html/app/lib/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Post.php on line 68
PHP Warning:  file_get_contents(https://www.google.com/recaptcha/api/siteverify): failed to open stream: operation failed in /var/www/html/app/lib/vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Post.php on line 68

这让我得出Openssl配置错误的结论。所以我:

  • 使用apt-get purge ca-certificate重新安装ca-certificates
  • 也下载了证书。并将其链接到php.ini
  • 检查curl是否正常工作,但它不是(每次调用curl以curl: (60) SSL certificate problem: unable to get local issuer certificate
  • 结束)
  • 检查了openssl.cnf,它看起来对我很好。

有什么好主意吗?

所以我发现了问题:首先,我根据drew010的评论更改了文件路径。然后我修复了我的服务器上的问题与文件权限/etc/ssl/certs根据这篇文章:https://askubuntu.com/a/636979

现在file_get_contents不会调用任何错误,recaptcha可以顺利运行。

相关内容

  • 没有找到相关文章

最新更新