【发布时间】:2018-09-20 17:23:13
【问题描述】:
在过去的几天里,我花了很大一部分时间阅读了 stackoverflow 和 google 上的所有解决方案,但无济于事。
那么具体的问题:
我从 namecheap 为我的网页购买了 SSL 证书。此特定站点托管在 Amazon EC2 上的 Amazon AMI (1) 上。
该站点可通过 HTTPS 访问,甚至 http://ssllabs.com 也确认 ssl 和 ca 包都处于良好状态。然而 laravel socialite 抛出 curl 60 错误 peer cert not valid。
我已经两次和三次检查 curl 路径上的 php.ini 上的一切是否正常,所以没有任何线索。
最奇怪的是,如果我使用来自https://curl.haxx.se/docs/caextract.html 的证书,它就可以正常工作!
所以请原谅新手的问题,但我是否应该将此证书用于 CURL?还有另一个不同的 https 设置?
谢谢!
更新:
我已经用从https://curl.haxx.se/docs/caextract.html下载的 cacert.pem 路径更新了我的 php.ini
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo="/var/www/html/cacert.php"
现在我收到 77 错误:
"cURL error 77: (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)"
【问题讨论】:
-
你需要给 curl 一个证书包。它可能没有在您的系统上正确配置。
-
嗨@Evert。这就是我的想法,但如果不是,那么 https 会抛出错误吗?在每个浏览器上都显示主证书和捆绑包都是有效的
-
不,浏览器有自己的捆绑包或使用操作系统捆绑包。您的服务器可能还有一个默认证书包。您的 curl 根本没有使用它,因此它认为每个 SSL 证书都未经验证。您应该使用操作系统的 ca 包,也可以使用 curl 中的包。无论哪种情况,您都需要确保它保持更新。
-
是的,您的服务器可能已经安装了证书,但是您是否在 CURL 调用中使用它?它不会自动发生..
-
社交名流框架正在进行 curl 调用,但我在 php.ini 中设置了正确的路径。现在错误已更改为 #77,这很奇怪,因为我使用的是 curl.haxx.se/docs/caextract.html 提供的 cacert 我不知道从这里去哪里
标签: php ssl curl laravel-socialite