SSL:GAE/Go 上的 CERTIFICATE_VERIFY_FAILED

Posted

技术标签:

【中文标题】SSL:GAE/Go 上的 CERTIFICATE_VERIFY_FAILED【英文标题】:SSL: CERTIFICATE_VERIFY_FAILED on GAE/Go 【发布时间】:2017-04-03 04:46:17 【问题描述】:

我正在开发 GAE/Go 应用程序并尝试从本地开发服务器连接 Google Big Query。

我的代码是这样的。

import (
  "cloud.google.com/go/bigquery"
  "golang.org/x/net/context"
  "google.golang.org/api/option"
  gaeLog "google.golang.org/appengine/log"
  newappengine "google.golang.org/appengine"
)

func MyFunc(c *gin.Context) 
  r := c.Request
  ctx := newappengine.NewContext(r)
  client, err := bigquery.NewClient(ctx, PROJECT_ID, option.WithServiceAccountFile(SERVICE_ACCOUNT_JSON_FILE_PATH))
  if err != nil 
      (Error Handling)
  

  tableList := client.Dataset(DATASET_ID).Tables(ctx)
  for 
    v, err := tableList.Next()
    if err == iterator.Done 
        break
     else if err != nil 
        gaeLog.Errorf(ctx, "Failed to get meta-info: %v", err)
        return
    
    :
  

我使用goapp.bat serve 命令调用了本地开发服务器。 当我发布请求时,出现错误。

api_dev.go:344: ERROR: Failed to get meta-info: Get https://www.googleapis.com/bigquery/v2/projects/myproject/datasets/mydataset/tables?alt=json&pageToken=: oauth2: cannot fetch token: Post https://accounts.google.com/o/oauth2/token: API error 6 (urlfetch: SSL_CERTIFICATE_ERROR): [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)

我用谷歌搜索了“CERTIFICATE_VERIFY_FAILED”,但我只能找到 python 程序。我的应用程序是 GAE/Go 程序。

我怎样才能避免这个错误?

【问题讨论】:

试试这个解决方案是否适合你:***.com/questions/43221963/… 【参考方案1】:

这是因为 Google 已经更新了他们的服务器证书,但没有通知 Go SDK 团队,他们仍然拥有旧的证书。

解决方案似乎相当简单。

    转到google_appengine\lib\cacerts\cacerts.txt 重命名为cacerts.txt.old,并将urlfetch_cacerts.txt 重命名为urlfetch_cacerts.txt.old 下载Python Linux SDK 1.9.52。 在这个 Python SDK 中,还有 google_appengine\lib\cacerts\ 目录,其中包含这两个证书文件。将它们复制到您的 Go SDK。 高兴!您现在拥有更新的证书。

【讨论】:

我从 1.9.50 升级到 1.9.53,我必须从 1.9.50 获取 cacerts.txt 和 urlfetch_cacerts.txt 才能让它再次工作。试过 1.9.52 和 1.9.51 都没有成功。

以上是关于SSL:GAE/Go 上的 CERTIFICATE_VERIFY_FAILED的主要内容,如果未能解决你的问题,请参考以下文章

Windows 10 和 Spyder 上的 Python 错误 [SSL: CERTIFICATE_VERIFY_FAILED]

SSL:使用 Bigquery 的 CERTIFICATE_VERIFY_FAILED

Python [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 解决方法

带有Godaddy错误的事件SSL:ssl.SSLError:[SSL:SSLV3_ALERT_CERTIFICATE_UNKNOWN] sslv3警报证书未知(_ssl.c:1051)

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)

解决pyhton aiohttp ssl:None [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)(代