我正在为 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
自述文件有简单的代码来检查它。您必须知道 Google 电视盒的 IP 地址,因为它不使用 mDNS。如果您(某人,任何人)运行此程序并得到不同的结果,请告诉我。
我已经在google-tv-remote浏览了 Google TV Remote 代码。一个更有用的是google-tv-pairing-protocol,它是我正在做的等效 Java/Android 项目。当然,我已经倾注了该代码。我认为这是 Go 本身的问题(不太可能),Go TLS 包不知道如何读取 Google TV 证书的问题(我知道这是一年前的问题),或者我的代码有问题(通常会最有可能,但我只是没有看到)。
顺便说一句,我正在 Logitech Revue 上测试它,它有一个自签名 SSL 证书。它没有以任何方式植根或修改。
当然,我生成的代码将是开源的。感谢您的帮助。