解決問題: go get certificate signed by unknown authority 換個代理或者

wangchunbo發表於2021-07-27

出現問題分析

  1. GOPROXY代理有問題

  2. 魔法牆問題

    狀況錯誤提示:

    執行命令

go get -insecure github.com/tiaguinho/gosoap

錯誤提示如下:



go get github.com/tiaguinho/gosoap: module github.com/tiaguinho/gosoap: Get "https://goproxy.io/github.com/tiaguinho/gosoap/@v/list": x509: certificate signed by unknown authority

解決

關閉代理,啟用魔法牆.

或者換一個代理

設定與切換代理方法

Go 版本是 1.13 及以上

$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

其他版本

$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn

檢視GO的配置

$ go env

解決問題: go get certificate signed by unknown authority

JSON格式輸出

$ go env -json

解決問題: go get certificate signed by unknown authority

國內其他代理

goproxy

goproxy.io/zh/

七牛雲

https://goproxy.cn

阿里雲

mirrors.aliyun.com/goproxy/

問題解決

換了個代理

執行成功
執行程式碼 如下:


D:\go
λ go env -w GOPROXY=https://goproxy.cn,direct

D:\go
λ go get github.com/tiaguinho/gosoap
go: github.com/tiaguinho/gosoap upgrade => v1.4.4
go: downloading golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553

解決問題: go get certificate signed by unknown authority 換個代理再試試

如果還沒解決

再次分析問題

  • go get 不支援程式碼支援之外的倉庫。並且git 呼叫鏈過程採取了https
  • 下載過程如果機器設定了GOPROXY,會導致下載失敗
  • 編譯過程會導致CHECKSUM失敗

說明,是google 不讓你拉取私有包.

那麼,你需要設定私有包.

再次解決問題

目前有以下三種方式:

  1. 給釋出的倉庫打tag比如v0.0.1,這樣倉庫地址就可以被識別

  2. 配置 私有

    export GOPRIVATE=git.xxxxxxx.com

    go 1.13版本以上

    go env -w GOPRIVATE=git.xxxxxxx.com

go build的時候系統就不會用GOPROXY以及不再校驗SUM

  1. 調整git https===>ssh,注意username換成自己的使用者名稱
    [url "username@git.xxxxxxx.com"]
     insteadOf = https://git.xxxxxxx.com

如果還還還沒解決!

那你放棄吧.換個包.

本作品採用《CC 協議》,轉載必須註明作者和本文連結
感謝關注 上海PHP自學中心-免費程式設計視訊教學|

相關文章