我正在使用Google API库在我们一直在构建的Web应用程序中进行服务器到服务器的通信。它适用于我们的开发和测试服务器,但是,当我们将应用程序移动到生产环境时,Curl命令会在尝试获取Oauth2令牌时导致连接被拒绝。
在我们的开发和测试服务器上:
curl -v https://accounts.google.com/o/oauth2/token
成功,并返回完整的405响应
在我们的生产服务器上,curl命令导致
curl -v https://accounts.google.com/o/oauth2/token
* About to connect() to accounts.google.com port 443 (#0)
* Trying 216.58.216.205... Connection refused
* Trying 2607:f8b0:4009:808::200d... Failed to connect to 2607:f8b0:4009:808::200d: Network is unreachable
* Success
* couldn't connect to host
* Closing connection #0
curl: (7) Failed to connect to 2607:f8b0:4009:808::200d: Network is unreachable
谷歌将我们的网站列入黑名单,还是什么?所有这些服务器都位于同一个域中。
答案 0 :(得分:0)
事实证明,实际上我们的DMZ防火墙阻止了传出请求
答案 1 :(得分:0)
这解决了我的问题。
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
此致 Kalpesh