如何在公司防火墙后为golang.org工作



首先,尽管它看起来与以下问题相同

  • 如何修复git错误:RPC失败;卷曲56 GnuTLS
  • git错误:RPC失败,curl 56 GnuTLS recv错误(-110(,并且
  • "错误:RPC失败;curl 56 GnuTLS recv错误(-110(:TLS连接未正确终止";,其中Hovo Asatryan评论了";它不能解决问题,我已经试过了">,我也试过,但都不管用

不是。因为所有这些问题都在git上,但这是在go get:上

$ go get -v -u golang.org/x/tools/cmd/goimports
get "golang.org/x/tools/cmd/goimports": found meta tag get.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at //golang.org/x/tools/cmd/goimports?go-get=1
get "golang.org/x/tools/cmd/goimports": verifying non-authoritative meta tag
golang.org/x/tools (download)
# cd .; git clone -- https://go.googlesource.com/tools /path/to/Go/src/golang.org/x/tools
Cloning into '.../Go/src/golang.org/x/tools'...
error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated.
package golang.org/x/tools/cmd/goimports: exit status 128

所有的解决方案都不适合我,我相信对于典型的企业开发环境中的任何人来说:

  • 我们在公司防火墙后面访问互联网,因此任何安全的https访问都将失败,除非得到特殊处理
  • 除了像上面那样访问公共https git repos之外,https://go.googlesource.com/tools,这或多或少是一件一次性的事情,我们需要始终访问我们的内部https TFS git-reso。因此,我不能像其他解决方案建议的那样更改git-https访问方法
  • 我事先尝试过使用git config --global http.sslVerify false,但问题仍然完全相同

所以问题是,我如何让go get告诉git放松安全检查
我想这是我唯一的选择,但我洗耳恭听。

PS。-insecure也不起作用:

$ go get -v -insecure golang.org/x/sys/unix
get "golang.org/x/sys/unix": found meta tag get.metaImport{Prefix:"golang.org/x/sys", VCS:"git", RepoRoot:"https://go.googlesource.com/sys"} at //golang.org/x/sys/unix?go-get=1
get "golang.org/x/sys/unix": verifying non-authoritative meta tag
golang.org/x/sys (download)
# cd .; git clone -- https://go.googlesource.com/sys /path/to/Go/src/golang.org/x/sys
Cloning into '/path/to/Go/src/golang.org/x/sys'...
error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated.
package golang.org/x/sys/unix: exit status 128

PPS。curl -s https://go.googlesource.com/sys对我来说很好:

$ curl -s https://go.googlesource.com/sys
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>sys - Git at Google</title><link rel="stylesheet" . . .

我只是在这上面花了太多时间。F*ing ZScaller。最终对我起作用的是从WSL版本的go(我认为Ubuntu 20 go 1.13(切换到最新的版本(1.17.3(

我使用了以下链接中的组合来实现这一点,可能有更好的方法:
https://gist.github.com/nikhita/432436d570b89cab172dcf2894465753
https://askubuntu.com/questions/720260/updating-golang-on-ubuntu

但为了防止有人像我一样躲到这里:

sudo apt-get purge golang*
curl -k https://dl.google.com/go/go1.17.3.linux-amd64.tar.gz --output go1.17.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf ./go1.17.3.linux-amd64.tar.gz
GOPATH=~/go
GOROOT=/usr/local/go
PATH=$PATH:$GOROOT/bin:$GOPATH/bin
go install package@latest

成功。FUZ(F U ZScaller(

相关内容

最新更新