gcloud在gcloud app deploy中崩溃(SSLHandshakeError)

时间:2017-09-14 14:21:46

标签: python-2.7 google-app-engine gcloud

由于我从今天早上开始遇到以下错误,因此无法部署我的应用。 我在没有太多帮助的情况下尝试了gcloud info --run-diagnosticsgcloud components reinstall

我尝试使用适用于Windows的旧Google App Engine Launcher部署它,但遇到了同样的错误。 早些时候它使用gcloud直到昨天晚上(IST)。请帮忙!

我正在使用最新的gcloud sdk并更新了所有组件。我用的是Win10。我也试过重启我的笔记本电脑。

C:\gaurav\coding\python\myapp\myapp\dist>gcloud app deploy --project=myproject --version 1 --verbosity=info ./app.yaml
INFO: Refreshing access_token
ERROR: gcloud crashed (SSLHandshakeError): [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)

If you would like to report this issue, please run the following command:
  gcloud feedback

To check gcloud for common problems, please run the following command:
  gcloud info --run-diagnostics

C:\gaurav\coding\python\myapp\myapp\dist>

诊断输出。

C:\gaurav\coding\python\myapp\myapp\dist> gcloud info --run-diagnostics
Network diagnostic detects and fixes local network connection issues.
Checking network connection...done.
ERROR: Reachability Check failed.
    Cannot reach https://accounts.google.com (SSLHandshakeError)
    Cannot reach https://cloudresourcemanager.googleapis.com/v1beta1/projects (SSLHandshakeError)
    Cannot reach https://www.googleapis.com/auth/cloud-platform (SSLHandshakeError)
Network connection problems may be due to proxy or firewall settings.


Do you have a network proxy you would like to set in gcloud (Y/n)?  n

ERROR: Network diagnostic (0/1 checks) failed.


C:\gaurav\coding\python\myapp\myapp\dist>

虽然gcloud info --run-diagnostics抱怨无法访问这三个网址。我可以从网络浏览器打开它们。

9 个答案:

答案 0 :(得分:3)

我发现在使用Fiddler(用于查看网络流量)并解密启用https流量时,我收到了SSLHandshakeError。

停止工具(或选择不解密https流量)然后运行gcloud导致成功。

根据评论,其他Web调试代理也存在问题,例如Charles。

答案 1 :(得分:2)

最近的GAE和GCloud SDK版本中存在的问题是存在无效的SSH证书,例如,请参阅Google App Engine SSL Certificate Errorissue 38338974

您可以尝试在上述帖子中使用我建议的解决方案,并将SDK的证书文件替换为有效的(必须为gcloud SDK找到一个好的,我的答案是GAE SDK)。 / p>

可能也可以使用gcloud config命令将core custom_ca_certs_file可配置属性设置为指向具有最新证书的文件,如果你有一个。我没试过,YMMV。

答案 2 :(得分:2)

在MacOS High Sierra上升级到Python 2.7.9为我解决了这个问题。

答案 3 :(得分:0)

我遇到了同样的问题,从运行命令root/intermediate cert时获得的Google网址之一下载了gcloud info --run-diagnostics并追加到正在使用的cacerts.txt文件中。就我而言,它是以下内容:google-cloud-sdk/lib/third_party/httplib2/python2/httplib2/cacerts.txt

答案 4 :(得分:0)

在MacOS Mojave上安装google cloud SDK时遇到了这个问题。我没有公司代理的身影,网络上的所有答案似乎都表明这是问题所在。我在install.sh脚本中注意到,它为python可执行文件使用了环境变量CLOUDSDK_PYTHON。因此,我通过将路径导出到python 3可执行文件来解决此问题。

就我而言: 导出CLOUDSDK_PYTHON = / Library / Frameworks / Python.framework / Versions / 3.6 / bin / python3.6

此后安装按预期进行。

答案 5 :(得分:0)

对我来说,这是python版本中的冲突。 gcloud正在调用其他版本。解决方案是将CLOUDSDK_PYTHON设置为指向正确的python(在这种情况下为python2)。

答案 6 :(得分:0)

在MacOS Catalina上,解决方案是完全uninstall gcloud和reinstall

答案 7 :(得分:0)

我尝试部署gcloud,但出现此错误。这是我的解决方法:

  1. 使用Firefox访问Google云

  2. 下载证书。 pem文件和链文件

  3. 将它们附加到位于cert.pem上的位置: C:\Program Files\google-cloud-sdk\lib\third_party\certifi\cert.pem (使用此方法您将基于代理创建自定义CA证书文件)

  4. 按此处所述更新证书文件:https://cloud.google.com/sdk/gcloud/reference/config/set (自定义CA证书文件的绝对路径。)

确保路径末尾有cert.pem

答案 8 :(得分:0)

我通过从gcloud安装apt-get解决了该问题。指南位于此link