【问题标题】:GOINSECURE to enable http downlaods on packages from GithubGOINSECURE 启用来自 Github 的包的 http 下载
【发布时间】:2022-12-03 12:35:43
【问题描述】:

我正在工作中开发一个 CLI 应用程序以自动执行一些繁琐的任务,为此我需要安装几个包,如 gotp。我注意到将这个新包安装到我的项目中会弹出此错误。

go get github.com/xlzd/gotp
go: module github.com/xlzd/gotp: Get "https://proxy.golang.org/github.com/xlzd/gotp/@v/list": x509: certificate signed by unknown authority

我想这与我的工作 PC 的防火墙或安全配置有关,因为我能够在我的 PC 上启用防火墙之前安装几个软件包。我阅读了有关环境变量 GOINSECURE 的信息,它将使 go get 能够通过 HTTP 下载包。所以这就是我在我的案例中所做的。

export GOINSECURE="proxy.golang.org/*,github.com,github.com/*"

仍然弹出相同的错误,我的配置中是否缺少某些内容?

【问题讨论】:

    标签: go go-get


    【解决方案1】:

    我安装内部包的时候也遇到这个错误,解决办法是选择合适的代理,我改了代理到内部代理站点地址,并制作私有化,GONO代理,GONOSUM数据库为空值。 在你的情况下,你可以尝试

    GOINSECURE="proxy.golang.org/*,github.com,github.com/*"
    GONOSUMDB="proxy.golang.org/*,github.com,github.com/*"
    GOPRIVATE="proxy.golang.org/*,github.com,github.com/*"
    

    【讨论】:

      【解决方案2】:

      当我试图在 ubuntu22 容器中的 bash shell 中使用 go inside 时,我遇到了这个问题,该容器在企业网络上的 docker 桌面内运行,适用于 Windows。

      我想要做

      go get github.com/Masterminds/sprig
      

      但不断收到 x509 错误

      go get github.com/Masterminds/sprig
      go: github.com/Masterminds/goutils@v1.1.1: Get "https://proxy.golang.org/github.com/%21masterminds/goutils/@v/v1.1.1.mod": x509: certificate signed by unknown authority
      
      1. go get --insecure 确实已弃用并且不再工作

      2. export GOINSECURE=github.com一开始没用

      3. 它似乎更像是使用GOINSECURE

        git config --global http.sslverify false

        一个我将此 sslVerify 设置为 false,它更进一步..

        所以我一直迭代go get github.com/Masterminds/sprig,每次它更进一步......调出另一个网址(可能是包依赖)

        go get github.com/Masterminds/sprig
        go: golang.org/x/crypto@v0.0.0-20211108221036-ceb1ce70b4fa: unrecognized import path "golang.org/x/crypto": https fetch: Get "https://golang.org/x/cr
        ypto?go-get=1": x509: certificate signed by unknown authority
        

        每次我将 url 添加到 GOINSECURE 即

        export GOINSECURE=github.com,golang.org
        
        go get github.com/Masterminds/sprig
        go: sigs.k8s.io/yaml@v1.2.0: unrecognized import path "sigs.k8s.io/yaml": https fetch: Get "https://sigs.k8s.io/yaml?go-get=1": x509: certificate sig
        ned by unknown authority
        
        export GOINSECURE=github.com,golang.org,sigs.k8s.io
        

        直到最终一切都被下载

        go get github.com/Masterminds/sprig
        go: downloading github.com/Masterminds/sprig v2.22.0+incompatible
        go: downloading github.com/Masterminds/goutils v1.1.1
        go: downloading github.com/Masterminds/semver v1.5.0
        go: downloading github.com/google/uuid v1.3.0
        go: downloading github.com/huandu/xstrings v1.3.2
        go: downloading github.com/imdario/mergo v0.3.12
        go: downloading github.com/mitchellh/copystructure v1.2.0
        go: downloading golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa
        go: downloading github.com/mitchellh/reflectwalk v1.0.2
        ""/bin/go build prehelm.go
        go: downloading sigs.k8s.io/yaml v1.2.0
        go: downloading gopkg.in/yaml.v2 v2.3.0
        

        简而言之,我希望能有所帮助

        1. 确保你有git config --global http.sslverify false
        2. 将站点添加到您 GOINSECURE= 一个一个直到完成。
        3. 或者,您可以添加 export GOINSECURE=*,但安全性较低

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-27
        • 1970-01-01
        相关资源
        最近更新 更多