cmd/go: go get -insecure requires GIT_SSL_NO_VERIFY

nmpmafwu  于 9个月前  发布在  Go
关注(0)|答案(2)|浏览(96)

你正在使用哪个版本的Go( go version )?

  1. $ go version
  2. go version go1.13 linux/amd64

这个问题在最新版本中是否会重现?

是的

你正在使用什么操作系统和处理器架构( go env )?

go env 输出

  1. $ go env
  2. GO111MODULE=""
  3. GOARCH="amd64"
  4. GOBIN=""
  5. GOCACHE="/root/.cache/go-build"
  6. GOENV="/root/.config/go/env"
  7. GOEXE=""
  8. GOFLAGS=""
  9. GOHOSTARCH="amd64"
  10. GOHOSTOS="linux"
  11. GONOPROXY=""
  12. GONOSUMDB=""
  13. GOOS="linux"
  14. GOPATH="/go"
  15. GOPRIVATE=""
  16. GOPROXY="https://proxy.golang.org,direct"
  17. GOROOT="/usr/local/go"
  18. GOSUMDB="sum.golang.org"
  19. GOTMPDIR=""
  20. GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
  21. GCCGO="gccgo"
  22. AR="ar"
  23. CC="gcc"
  24. CXX="g++"
  25. CGO_ENABLED="1"
  26. GOMOD="/go/test/go.mod"
  27. CGO_CFLAGS="-g -O2"
  28. CGO_CPPFLAGS=""
  29. CGO_CXXFLAGS="-g -O2"
  30. CGO_FFLAGS="-g -O2"
  31. CGO_LDFLAGS="-g -O2"
  32. PKG_CONFIG="pkg-config"
  33. GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build128427995=/tmp/go-build -gno-record-gcc-switches"

你做了什么?

  1. $ docker run -ti --rm golang:1.13 bash
  2. $ mkdir test && cd test && go mod init test
  3. $ export GOPRIVATE=github.xxxx.xxxxx.corp
  4. $ go get github.xxxx.xxxxx.corp/myorg/go
  5. go get github.xxxx.xxxxx.corp/myorg/go: unrecognized import path "github.xxxx.xxxxx.corp/myorg/go" (https fetch: Get https://github.xxxx.xxxxx.corp/myorg/go?go-get=1: x509: certificate signed by unknown authority)
  6. $ go get -insecure -x -v github.xxxx.xxxxx.corp/myorg/go
  7. # get https://github.xxxx.xxxxx.corp/?go-get=1
  8. # get https://github.xxxx.xxxxx.corp/myorg?go-get=1
  9. # get https://github.xxxx.xxxxx.corp/myorg/go?go-get=1
  10. # get //github.xxxx.xxxxx.corp/myorg/go?go-get=1: 200 OK (0.068s)
  11. get "github.xxxx.xxxxx.corp/myorg/go": found meta tag get.metaImport{Prefix:"github.xxxx.xxxxx.corp/myorg/go", VCS:"git", RepoRoot:"https://github.xxxx.xxxxx.corp/myorg/go.git"} at //github.xxxx.xxxxx.corp/myorg/go?go-get=1
  12. mkdir -p /go/pkg/mod/cache/vcs # git3 https://github.xxxx.xxxxx.corp/myorg/go.git
  13. # lock /go/pkg/mod/cache/vcs/1e0d9b889f3416a56ea37502ad1137f6723e61f8260c10aaf3fb8c45d44204fe.lockmkdir -p /go/pkg/mod/cache/vcs/1e0d9b889f3416a56ea37502ad1137f6723e61f8260c10aaf3fb8c45d44204fe # git3 https://github.xxxx.xxxxx.corp/myorg/go.git
  14. cd /go/pkg/mod/cache/vcs/1e0d9b889f3416a56ea37502ad1137f6723e61f8260c10aaf3fb8c45d44204fe; git init --bare
  15. 0.005s # cd /go/pkg/mod/cache/vcs/1e0d9b889f3416a56ea37502ad1137f6723e61f8260c10aaf3fb8c45d44204fe; git init --bare
  16. cd /go/pkg/mod/cache/vcs/1e0d9b889f3416a56ea37502ad1137f6723e61f8260c10aaf3fb8c45d44204fe; git remote add origin -- https://github.xxxx.xxxxx.corp/myorg/go.git
  17. 0.003s # cd /go/pkg/mod/cache/vcs/1e0d9b889f3416a56ea37502ad1137f6723e61f8260c10aaf3fb8c45d44204fe; git remote add origin -- https://github.xxxx.xxxxx.corp/myorg/go.git
  18. cd /go/pkg/mod/cache/vcs/1e0d9b889f3416a56ea37502ad1137f6723e61f8260c10aaf3fb8c45d44204fe; git ls-remote -q origin
  19. # get //github.xxxx.xxxxx.corp/?go-get=1: 200 OK (0.101s)
  20. 0.111s # cd /go/pkg/mod/cache/vcs/1e0d9b889f3416a56ea37502ad1137f6723e61f8260c10aaf3fb8c45d44204fe; git ls-remote -q origin
  21. # get //github.xxxx.xxxxx.corp/myorg?go-get=1: 200 OK (1.277s)
  22. go get github.xxxx.xxxxx.corp/myorg/go: git ls-remote -q origin in /go/pkg/mod/cache/vcs/1e0d9b889f3416a56ea37502ad1137f6723e61f8260c10aaf3fb8c45d44204fe: exit status 128:
  23. fatal: unable to access 'https://github.xxxx.xxxxx.corp/myorg/go.git/': server certificate verification failed. CAfile: none CRLfile: none
  24. $ GIT_SSL_NO_VERIFY=1 go get -insecure github.xxxx.xxxxx.corp/myorg/go
  25. go: finding github.xxxx.xxxxx.corp/myorg/go latest
  26. go: downloading github.xxxx.xxxxx.corp/myorg/go v0.0.0-20190903123812-3090d622918c
  27. go: extracting github.xxxx.xxxxx.corp/myorg/go v0.0.0-20190903123812-3090d622918c

你期望看到什么?

我期望看到选项 -insecure 也禁用了git的SSL验证。

你看到了什么?

go get -insecure 失败了,我不得不启用 GIT_SSL_NO_VERIFY 才能下载我的依赖项。

l2osamch

l2osamch1#

我们应该与#32966一起重新审视这个问题。

piwo6bdm

piwo6bdm2#

CC @jayconrod@FiloSottile

相关问题