golang:HTTPS请求收益率“;加密/rsa:验证错误“;

golang:HTTPS请求收益率“;加密/rsa:验证错误“;,https,go,rsa,Https,Go,Rsa,使用net/http包访问httpsurl时遇到问题 以下是错误的工作示例: package main import ( "fmt" "net/http" ) func main() { _, err := http.Get("https://api.bitfinex.com/v1/book/ltcbtc") if err != nil { fmt.Println(err) } } // ErrVerification represents a failure

使用
net/http
包访问
https
url时遇到问题

以下是错误的工作示例:

package main

import (
  "fmt"
  "net/http"
)

func main() {
  _, err := http.Get("https://api.bitfinex.com/v1/book/ltcbtc")
  if err != nil {
    fmt.Println(err)
  }
}
// ErrVerification represents a failure to verify a signature.
// It is deliberately vague to avoid adaptive attacks.
var ErrVerification = errors.New("crypto/rsa: verification error")
这个程序会产生错误

Get https://api.bitfinex.com/v1/book/ltcbtc: crypto/rsa: verification error
for
net/http

Get、Head、Post和PostForm发出HTTP(或HTTPS)请求

但是我找不到关于这个错误的任何文档

for
crypto/rsa
仅对错误作了如下说明:

package main

import (
  "fmt"
  "net/http"
)

func main() {
  _, err := http.Get("https://api.bitfinex.com/v1/book/ltcbtc")
  if err != nil {
    fmt.Println(err)
  }
}
// ErrVerification represents a failure to verify a signature.
// It is deliberately vague to avoid adaptive attacks.
var ErrVerification = errors.New("crypto/rsa: verification error")
所以我不知道接下来该怎么办。我很确定这不是他们的错,因为Chrome对他们的https证书很满意


我还尝试使用
客户机
tls.Config
,该客户机的
unsecureskipverify
设置为
true
,但这似乎并没有阻止此错误。

Go在和下使用系统根SSL证书

考虑到测试在我的Ubuntu12.04和go 1.2上运行良好

  • 您使用的是非常旧的go版本
  • 您的系统具有过期的根证书

  • 如果要更新根证书,请参阅windows提示。谷歌应该会为其他操作系统找到更多的想法。

    许多unix发行版没有最新的PKI链签名密钥列表。特别是,Thawte证书需要额外的证书链来验证其证书。浏览器通常都是最新的。下面是关于thawte问题的更多信息@ArturSapek:Chrome可能使用自己的证书集,独立于操作系统。你试过使用openssl s_client-connect api.bitfinex.com:443吗?我用Ubuntu12.04和go 1.2试过上面的方法,效果很好。建议您发布操作系统详细信息和
    go版本的输出。升级go修复了它!我真的需要学会在向任何人寻求帮助之前总是这样做。出于文档目的,我运行的go版本是
    go版本devel+f4d1cb8d9a91-Thu-Sep 19 22:34:33 2013+1000 darwin/amd64
    。升级到最新的go1.2.1 darwin/amd64版本,修复了此问题。谢谢你打我的头,我需要这个。这是一个显而易见的解决方案。谢谢你的指导。我尝试过更新OSX、我的根证书,甚至
    openssl
    ,以防万一。我仍然得到错误。然而,我似乎可以通过这种方式加载其他域,甚至可以在我的Linode盒(运行CentOS)上加载这个有问题的域。但由于某些原因,我的Mac电脑不喜欢Bitfinex的SSL证书。现在还不知道如何调试它。