2016-04-06 9 views
0

Ich versuche, einen sicheren Aufruf zwischen zwei virtuellen Maschinen mit pjsua-Programm von pjsip Installation zu machen. Ich starte das Programm auf jedem Knoten über:Ursache von TLS-Handshake fehlgeschlagen, wenn TLS-Aufruf versucht wird

pjsua-x86_64-unknown-linux-gnu --use-tls

ich dann m eingeben Anruf tätigen und senden: sip: xxx.xxx.xx.x : 5061; transport = TLS

auf der Empfangsseite sehe ich: Handshake fehlgeschlagen akzeptieren xxx.xxx.xx.x: 58392: keine Chiffre geteilt

auf der Wahlseite ich bin mit: fehlgeschlagen Sende eine Anfrage msg INVITE/cseq = 17559 (tdta0x1ab89e0)! err = 495040 (sslv3 alert handshake failure)

Kann mir jemand helfen zu verstehen, warum das passiert?

+0

Welche Art von Schlüssel wird der Server mit? Wenn es sich um einen EC-Schlüssel handelt, dann schauen Sie sich [Elliptic Curve Cryptography | Benannte Kurven] (http://wiki.openssl.org/index.php/Elliptic_Curve_Cryptography#Named_Curves). Wenn Sie Domänenparameter anstelle einer OID verwendet haben, ist dies das genaue Symptom von * "Keine gemeinsame Chiffre" *. – jww

+0

Ich bin neu in all dem. Was ich versuche zu tun, ist https://trac.pjsip.org/repos/wiki/TLS, aber ich weiß nicht, was ein Wurzelzertifikat ist oder wie man eines erzeugt. – user2747139

+0

Stack Overflow ist eine Website für Programmier- und Entwicklungsfragen. Diese Frage scheint off-topic zu sein, weil es nicht um Programmierung oder Entwicklung geht. Siehe [Welche Themen kann ich hier fragen?] (Http://stackoverflow.com/help/on-topic) in der Hilfe. Vielleicht [Super User] (http://superuser.com/) oder [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) wäre ein besserer Ort, um zu fragen. Siehe auch [Wo veröffentliche ich Fragen zu Dev Ops?] (Http://meta.stackexchange.com/q/134306). – jww

Antwort

0

Es sieht so aus, als ob die Verschlüsselungskonfiguration des Servers (Empfangsseite in Ihrem Fall) und des Clients (in Ihrem Fall die Wählseite) nicht übereinstimmen.

Der Fehler keine gemeinsame Chiffre (Alarm 40) sagt, dass es irgendeine der Chiffre von Client auf der Serverseite

Sie benötigen zur Verfügung verwendet nicht zumindest für SSL_CTX_set_cipher_list in den Ruf suchen (If Sie verwenden OpenSSL) API an beiden Enden.

Versuchen Sie, die allgemeinen Cihpers auf Client- und Servermaschinen zu konfigurieren.

Manchmal können Sie den gleichen Fehler (chaded chiffre) für die Nichtverfügbarkeit der Chiffre, die von öffentlichen Zertifikaten verwendet wird, erhalten. Überprüfen Sie den ersten Schritt besser und überprüfen Sie dann Ihren Zertifikatsalgorithmus.

Ich hatte auch das ähnliche Problem für meine Client-Server-Konfiguration konfrontiert.

hier ist eine Referenz:

"no shared cipher" error with python and OpenSSL