2011-12-05 1 views
5

Google TV Pairing Protocol 용 Go 패키지를 작성 중입니다. 하지만 TLS 핸드 셰이크에 문제가있는 것 같습니다.Google TV Pairing Protocol - go (golang)로 인한 SSL 핸드 셰이크 오류

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 파일이 체크 아웃하기 쉬운 코드가 있습니다. mDNS를 사용하지 않기 때문에 Google TV 상자의 IP 주소를 알아야합니다. 당신 (누군가, 누군가)이 이것을 실행하면 다른 결과를 얻게되면 알려주십시오.

Google TV 원격 코드 google-tv-remote을 이미 거쳤습니다. 더 유용한 것은 google-tv-pairing-protocol입니다. 이것은 내가하고있는 Java/Android 프로젝트와 동등합니다. 물론 나는 이미 그 코드를 쏟아 부었다. Google TV 인증서를 읽는 방법을 알지 못하는 Go TLS 패키지의 문제 (1 년 전에 문제가 있음을 알았 음) 또는 내 코드에 문제가있는 것 (일반적으로 가장 가능성이 있지만, 나는 단지 그것을 보지 않고있다).

Logitech Revue에서 테스트 중이며 자체 서명 된 SSL 인증서가 있습니다. 어떤 방식 으로든 뿌리가되거나 수정되지 않았습니다.

내 결과 코드는 물론 오픈 소스입니다. 도움을 주셔서 감사합니다.

답변

2

클라이언트 인증서는 런타임시 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/고유 식별자" */

+0

핸드 셰이크 시간에 클라이언트 인증서를 보내 줄 것을 말합니까? 그렇다면 그것은 의미가있을 것이고 나는 당신에게 멋진 강아지가되어야합니다. 그렇지 않다면,이 메시지에 대한 나의 이해에서 내가 어디가 잘못되었는지 알려주십시오. –

+1

아직 전체 프로세스를 진행하지는 않았지만 http://code.google.com/p/google-tv-remote/source/browse/src에 따라 초기 페어링 요청 중에 SSL이 필요합니다. /com/google/android/apps/tvremote/PairingActivity.java#240 – saxman

+0

지금 답변으로 표시하고 있습니다. 나는 그것을 검증하지는 않았지만 유용하게 보입니다. 특히 클라이언트 SSL 인증서가 필요하다고 생각합니다. 사용하지 않았습니다. 어떻게 든 그것이 사실이 아님이 밝혀 지거나 누군가가 더 좋거나 더 완전한 답을 얻는다면, 나는 그것들으로 바꿀 것입니다. 그러나 대답이 충분히 답할 수 있기 때문에 대답하지 않은 상태에서이 의견을 남기려는 것이 싫어서 ... 여기 있습니다. 감사. –

관련 문제