繁体   English   中英

Google TV配对协议 - Go的SSL握手错误(golang)

[英]Google TV Pairing Protocol — SSL Handshake Error with Go (golang)

我正在为Google TV配对协议编写一个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警报握手失败。

有任何想法吗? Google TV是否期望获得客户端证书? 我在任何地方都没有看到任何对客户端证书的需求。

如果有人想帮忙搞清楚,请输入以下代码: https//github.com/dustywilson/go-polo

README文件有简单的代码来检查它。 您必须知道Google TV电视盒的IP地址,因为这不使用mDNS。 如果你(某人,任何人)运行这个并得到不同的结果,请告诉我。

我已经通过google-tv-remote浏览了Google TV远程代码。 一个更有用的是google-tv-pairing-protocol ,这是我正在做的事情的等效Java / Android项目。 当然我已经倾倒了那段代码。 我认为Go本身(不太可能)是一个问题,Go TLS包的问题不知道如何阅读Google TV的证书(我知道这是一年前的问题),或者我的代码有问题(通常会最有可能,但我只是没有看到它。

顺便说一句,我在Logitech Revue上测试它,它有一个自签名的SSL证书。 它没有任何根源或修改。

当然,我的结果代码将是开源的。 谢谢你的帮助。

客户端证书由Java远程客户端在运行时生成,并存储以供将来使用。 查看代码:

http://code.google.com/p/google-tv-remote/source/browse/src/com/google/android/apps/tvremote/KeyStoreManager.java

您可能遇到了无效的证书。 根据代码,您需要一个特定的CN。

/ *返回应在新证书中使用的名称。 *格式为:“CN = anymote / PRODUCT / DEVICE / MODEL / unique identifier”* /

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM