如果私有库不支持https协议,会报如下的错误。这是因为Go更新依赖时,会强制校验CA证书来确保依赖库的安全性。

go: gitee.com/modules/project@v0.0.0-20200320063051-28c4ad7fe2ea: unrecognized import path "gitee.com/modules/project": https fetch: Get "https://gitee.com/modules/project?go-get=1": dial tcp 123.123.123:443: connect: connection refused

如果私有库不支持https协议,还需要go配置参数或环境变量,使其使用http方式访问

  1. 使用 go get -insecure,这种方式不推荐,原因如下
  • 添加 -insecure 参数即表示更新依赖时可以不去校验CA证书,但是这会带来一个问题:范围无法界定(overkill),所有与要更新依赖相关联的依赖,均不会去做校验,可能会意外更新到不安全的依赖。
  • -insecure 仅支持 go get 命令,不支持 go mod 命令,因此使用 go mod 命令时是无法更新不支持https协议的私有库的。
  1. 添加 GOINSECURE 参数,推荐这种方式
  • 在Go 1.14中增加了新的环境变量,用于指定哪些域名下的仓库不去校验CA证书。
  • 使用方式同 GOINSECURE 类似 go env -w GOINSECURE=gitee.com/user_name