当我输入command go build时,我有一个项目具有来自bitbucket上私人存储库的多个依赖项。我得到这个错误
无法识别的导入路径“ bitbucket.xxx.xx / xx / x” x509:证书由未知授权机构签名
我已经尝试了几种方法,例如添加令牌
git config –global http.extraheader令牌
配置为ssh
git config –global url。“ git@bitbucket.org:”。insteadOf“ https://bitbucket.org/ ”
但它不起作用。
关于使用HTTPS URL,请注意,使用Git 2.25(2020年第一季度),HTTP传输可能存在分配器/取消分配器不匹配的问题,该问题已得到纠正。
因此,如果您使用的是Git 2.24,http.extraheader无论如何都不会起作用。
http.extraheader
参见Johannes Schindelin()的commit 4d17fd2(06 Nov 2019 )。(通过合并JUNIOÇ滨野- -在提交bad5ed3,2019年12月1日)dscho gitster
dscho
gitster
[`remote- curl`](https://github.com/git/git/commit/4d17fd253fbba05c643593bcb86515683badb03f):使用自定义分配器破解http.extraHeader 签字人:约翰内斯·辛德尔林 在93b980e58f5中(“ http:将xmalloc与cURL一起使用”,2019-08-15,Git v2.24.0-rc0- 在批处理#3中列出的合并),我们开始要求cURL使用,如果使用nedmalloc进行编译,则意味着与系统分配器不同的分配器。xmalloc() 这意味着所有cURL的分配和释放现在_need_以使用该分配器。 但是,该http_options()函数用于slist_append()添加任何已配置的额外HTTP标头_before_要求cURL使用xmalloc(),http_cleanup()并将释放它们,_afterwards_,即在存在自定义分配器的情况下,cURL会尝试使用错误的分配器来释放内存。 天真地解决此问题会将调用转移到curl_global_init() _before_配置已解析(即,在之前调用slist_append())。 但是,这不起作用,因为我们_also解析配置设置http.sslbackend,如果找到,curl_global_sslset()则 _必须 在之前调用curl_global_init(),有关详细信息,请参见:https : //curl.haxx.se/libcurl/c/curl_global_sslset.html 因此,让我们改为使配置解析完全独立于cURL的数据结构。顺便说一句,这比引入的多删除了两行,这很好。
curl`](https://github.com/git/git/commit/4d17fd253fbba05c643593bcb86515683badb03f):使用自定义分配器破解http.extraHeader
签字人:约翰内斯·辛德尔林
在93b980e58f5中(“ http:将xmalloc与cURL一起使用”,2019-08-15,Git v2.24.0-rc0- 在批处理#3中列出的合并),我们开始要求cURL使用,如果使用nedmalloc进行编译,则意味着与系统分配器不同的分配器。xmalloc()
http
xmalloc()
这意味着所有cURL的分配和释放现在_need_以使用该分配器。
_need
但是,该http_options()函数用于slist_append()添加任何已配置的额外HTTP标头_before_要求cURL使用xmalloc(),http_cleanup()并将释放它们,_afterwards_,即在存在自定义分配器的情况下,cURL会尝试使用错误的分配器来释放内存。
http_options()
slist_append()
_before
http_cleanup()
_afterwards_,
天真地解决此问题会将调用转移到curl_global_init() _before_配置已解析(即,在之前调用slist_append())。
curl_global_init()
但是,这不起作用,因为我们_also解析配置设置http.sslbackend,如果找到,curl_global_sslset()则 _必须 在之前调用curl_global_init(),有关详细信息,请参见:https : //curl.haxx.se/libcurl/c/curl_global_sslset.html
_also
http.sslbackend
curl_global_sslset()
因此,让我们改为使配置解析完全独立于cURL的数据结构。顺便说一句,这比引入的多删除了两行,这很好。
对于自签名证书,在全局禁用SSL验证可能会被视为安全风险,应仅在测试时实施。