【发布时间】:2012-11-19 01:08:21
【问题描述】:
我正在为 Google TV Pairing Protocol 编写一个 Go 包。但我似乎遇到了 TLS 握手的问题。
sock, err := tls.Dial("tcp", "10.8.0.1:9552", &tls.Config{InsecureSkipVerify: true})
那条线给了我一个握手错误。确切的错误消息是:remote error: handshake failure。如果我通过 curl 尝试相同的主机/端口,它也会给出 curl: (35) error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 警报握手失败。
有什么想法吗?谷歌电视可能需要客户端证书吗?我在任何地方都没有看到任何关于需要客户证书的参考。
如果有人想帮助解决这个问题,代码如下: https://github.com/dustywilson/go-polo
README 文件有简单的代码来检查它。您必须知道 Google 电视盒的 IP 地址,因为它不使用 mDNS。如果您(某人、任何人)运行此程序并得到不同的结果,请告诉我。
我已经在google-tv-remote 浏览了 Google TV Remote 代码。一个更有用的是google-tv-pairing-protocol,它与我正在做的事情等效的 Java/Android 项目。当然,我已经倾注了该代码。我认为这是 Go 本身的问题(不太可能),Go TLS 包不知道如何读取 Google TV 证书的问题(我知道这是一年前的问题),或者我的代码有问题(通常会很有可能,但我只是没看到)。
顺便说一句,我正在 Logitech Revue 上对此进行测试,它具有自签名 SSL 证书。它没有以任何方式植根或修改。
当然,我生成的代码将是开源的。感谢您的帮助。
【问题讨论】: