我正在为Google TV配对协议编写一个Go包.但我似乎在解决TLS握手问题.
sock, err := tls.Dial("tcp", "10.8.0.1:9552", &tls.Config{InsecureSkipVerify: true})
Run Code Online (Sandbox Code Playgroud)
该行给了我握手错误.确切的错误消息是: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 远程客户端在运行时生成并存储以供将来使用。查看代码:
您可能遇到了无效的证书。根据代码,你需要一个特定的CN。
/* 返回新证书中应使用的名称。* 格式为:“CN=anymote/产品/设备/型号/唯一标识符” */