Как заставить go get работать на golang.org, находясь за корпоративным брандмауэром

Прежде всего, хотя это выглядит так же, как следующие вопросы

это НЕ. так как все эти вопросы на 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, как указано выше, https://go.googlesource.com/tools, что более или менее одноразово, нам нужно получать доступ к нашим внутренним репозиториям https TFS git все время. Таким образом, я не могу изменить метод доступа 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

ППС. 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" . . .

person xpt    schedule 29.03.2021    source источник
comment
Это сообщение означает, что ваш корпоративный брандмауэр неисправен и не поддерживает TLS должным образом. Стандарт TLS требует, чтобы соединение было правильно завершено, независимо от того, решите ли вы проверять сертификат или нет. Вместо этого вам нужно будет использовать SSH или попросить вашу компанию починить их сломанное устройство TLS MITM.   -  person bk2204    schedule 30.03.2021
comment
Спасибо. Неисправное устройство TLS MITM — Zscaler. У меня нет возможности убедить мою компанию, магазин C# только для Windows, исправить мою личную проблему. Так что единственное, что я могу сделать, это публично назвать его здесь.   -  person xpt    schedule 30.03.2021