当前位置: 首页 > 知识库问答 >
问题:

Golang-跳过SSL/x509验证和构建包?

慕烨烁
2023-03-14

我对围棋语言一无所知,我只想在Ubuntu 14上使用这个应用程序:

  • https://github.com/mvdan/fdroidcl

在做任何事情之前,我必须在~/中设置GOPATH环境变量。巴什尔。自述文件中说,此程序安装有:

go get -u github.com/mvdan/fdroidcl/cmd/fdroidcl

这会顺利通过,并找到一个可执行文件。事实上,这些是在home中找到的文件,其中GOPATH~/go

$ find ~ -name 'fdroidcl*' 2>/dev/null 
/home/myusername/.cache/fdroidcl
/home/myusername/.config/fdroidcl
/home/myusername/go/pkg/gccgo_linux_386/github.com/mvdan/fdroidcl
/home/myusername/go/src/github.com/mvdan/fdroidcl
/home/myusername/go/src/github.com/mvdan/fdroidcl/cmd/fdroidcl
/home/myusername/go/bin/fdroidcl

很好,但是现在当我启动初始命令时:

$ fdroidcl updateDownloading https://f-droid.org/repo/index.jar... 
update: could not update index: Get https://f-droid.org/repo/index.jar: x509: certificate signed by unknown authority (possibly because of "x509: cannot verify signature: algorithm unimplemented" while trying to verify candidate authority certificate "COMODO RSA Certification Authority")

这很可能是自签名证书导致的故障。一个快速修复方法是使用http://而不是https://(在f-droid.org的情况下,目前是可能的),因此我尝试更改~/go/src/github。com/mvdan/fdroidcl/cmd/fdroidcl/main。转到

var config = userConfig{
        Repos: []repo{
                {
                        ID:      "f-droid",
                        //URL:     "https://f-droid.org/repo",
                        URL:     "http://f-droid.org/repo",
                        Enabled: true,
                },
                {
                        ID:      "f-droid-archive",
                        //URL:     "https://f-droid.org/archive",
                        URL:     "http://f-droid.org/archive",
                        Enabled: false,
                },
        },
}

... 但该命令实际上是二进制的:

$ file $(which fdroidcl)
~/go/bin/fdroidcl: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=cd1dc87b54f9023983511ef46fda15a4d88dcb2d, not stripped

... 这意味着我必须以某种方式从源代码重新构建此应用程序,以便获得这些更改-我将如何做到这一点?

此外,可能还有其他具有自签名https证书的应用程序会中断,因此我宁愿跳过SSL/X509验证。看起来,就像golang:如何使用坏证书执行https请求?指出,在代码中应该做到:

tr := http.DefaultTransport.(*http.Transport)
tr.TLSClientConfig.InsecureSkipVerify = true

...这又需要黑客攻击/重新编译源代码——但是难道没有某种环境变量来帮助实现这一点,比如gitGIT_SSL_NO_VERIFY

共有1个答案

鲁浩言
2023-03-14

在更新源代码后(在$GOPATH/src中),您可以尝试使用以下命令重新编译:

go install github.com/mvdan/fdroidcl/cmd/fdroidcl
 类似资料:
  • 我正在尝试通过空手道关闭SSL证书验证。现在我得到了错误: javax.net.ssl.sslHandShakeException:Sun.Security.Validator.ValidatorException:PKIX路径构建失败:Sun.Security.Provider.CertPath.SunCertPathBuilderException:找不到请求目标的有效证书路径

  • 问题内容: 我试图分几个步骤处理X509证书,并遇到了两个问题。我是JCE的新手,所以我还没有完全了解最新信息。 我们希望能够基于不同的编码(PEM,DER和PCKS7)解析几个不同的X509证书。我已经使用FireFox 从https://belgium.be以PEM和PCKS7格式导出了相同的证书(证书包括链)。我已经省略了几行不需要的问题 只要我使用FileInputStream而不是PCK

  • 我的公司曾使用Nexus作为存储库,但现在改为ArtiFactory。当我尝试用maven构建时,甚至使用所有选项 它以错误失败 PKIX路径构建失败无法找到有效的证书路径以请求目标 对https://... 使用优先级为-1.0的传输程序 对https://... 使用优先级为0.0的连接器用户名=XXX,密码=*** 未能读取工件描述符验证器PKIX路径构建失败SunCertPathBuild

  • 问题内容: 谁能帮助我了解MarshalPKIXPublicKey()和MarshalPKCS1PublicKey()之间的区别? 根据注释:// MarshalPKIXPublicKey将公共密钥序列化为DER编码的PKIX格式。 // MarshalPKCS1PublicKey将RSA公钥转换为PKCS#1,ASN.1 DER格式。 什么是DER编码的PKIX格式? 谢谢 问题答案: 您不清楚

  • 我已经配置了CloseableHttpAsyncClient,如下所述 我想绕过SSL验证。我试图检查不同的配置,但没有找到解决方案。

  • 尽管我保留了verify=false,但在Python中还是出现了ssl错误。你能告诉我如何避免吗?但是curl命令使用-k选项。 错误: