我在使用 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)
}
}
这个程序出现了错误,
Get https://api.bitfinex.com/v1/book/ltcbtc: crypto/rsa: verification error
net/http 的文档清楚地说明了 Get、Head、Post 和 PostForm 方法可以进行 HTTP(或 HTTPS)请求,但我找不到任何有关此错误的文档。crypto/rsa 的源代码只是这样描述该错误:// 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证书很满意。
我还尝试使用一个带有InsecureSkipVerify
设置为true
的tls.Config
的Client
,但似乎这并没有消除这个错误。
openssl s_client -connect api.bitfinex.com:443
吗? - nemogo version
的输出结果。 - Nick Craig-Woodgo version devel +f4d1cb8d9a91 Thu Sep 19 22:34:33 2013 +1000 darwin/amd64
。升级到最新版本go version go1.2.1 darwin/amd64
,解决了这个问题。谢谢你给我一巴掌,我需要这个。多么显而易见的解决方案。 - Artur Sapek