2017-04-03 15 views
2

私はGAE/Goアプリケーションを開発中で、ローカル開発サーバーからGoogle Big Queryに接続しようとしています。GAE/GoでSSL:CERTIFICATE_VERIFY_FAILED

私のコードは次のとおりです。

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プログラムです。

このエラーを回避するにはどうすればよいですか?

+1

試みこのソリューションは、あなたのために働くかどうかを確認するには:http://stackoverflow.com/questions/43221963/google-app-engine-ssl-certificate-error/43233424#43233424 –

答えて

2

これは、Googleがサーバー証明書を更新したが、古い証明書を持っているGo SDKチームに通知していないためです。

解決策はかなり簡単です。

  1. ゴーgoogle_appengine\lib\cacerts\
  2. からcacerts.txt.oldcacerts.txtの名前を変更し、urlfetch_cacerts.txtPython Linux SDK 1.9.52をダウンロード
  3. urlfetch_cacerts.txt.oldへ。
  4. このPython SDKには、これら2つの証明書ファイルを持つgoogle_appengine\lib\cacerts\ディレクトリもあります。それらをGo SDKにコピーします。
  5. 喜んでください!新しい証明書が作成されました。
+0

私はに1.9.50からアップグレード1.9.53、私はcacerts.txtとurlfetch_cacerts.txtを1.9.50から取得して、再び動作させる必要がありました。 1.9.52と1.9.51を試してみました。 – Craig

関連する問題