Google recaptcha 无法在服务器上运行,但在本地主机上运行

Google recaptcha not working on server, but working on localhost

我想使用 curl 访问 googles recaptcha v2 api 但它只适用于我的 localhost.The 错误是“SSL peer certificate or SSH remote key was not OK"。当我设法绕过这个时,它给我一个 301 永久移动 错误,导致 404 错误curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 没有解决这个问题。另一个奇怪的事情是 namelookup_time 超过 15 秒,也就是非常慢。

我试过禁用 CURLOPT_SSL_VERIFYPEER 和 CURLOPT_SSL_VERIFYHOST ,添加 cacert.pem 文件和所有其他 CA 包,但它仍然不起作用。问题显然与 SSL 证书有关,但我已经尝试了互联网上的所有内容。另一个有用的事情可能是说在我的服务器上卷曲有点旧,以及其他一切。

$url = "https://www.google.com/recaptcha/api/siteverify";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER,array("Content-type: application/json; charset=utf-8"));
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
url_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => 1
CURLOPT_POSTFIELDS => array(
        'secret' => $mysecret,
        'response' => $mycaptcha,
    )

问题出在服务器的绑定上。它是滞后的,这导致了缓慢和不可能的连接,重新启动后一切正常。希望这会对某人有所帮助!