2016-02-03 20 views
10

Ich versuche, die Javascript Aufnahme Beispiel Kurento WebRTC zu laufen, wie in gesehen:Kurento - WebSocket Verbindung fehlgeschlagen

http://doc-kurento.readthedocs.org/en/stable/tutorials/js/tutorial-recorder.html

Ich habe Setup Kurento auf einer Maschine Ubuntu und es läuft OK. Der Service hat auch begonnen. Außerdem habe ich das Java-basierte Beispiel getestet und es lief ohne Probleme.

Die js Aufzeichnung Beispiel mit dem folgenden Fehler fehlgeschlagen:

Mixed Content: The page at ' https://ABCDEF ' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://XYZ:8433/'. This request has been blocked; this endpoint must be available over WSS

ich die ws_uri Variable auf einen sicheren Web-Socket-zu-Punkt geändert:

ws_uri: 'wss://XYZ:8433', 

Allerdings bekomme ich die folgende Fehlermeldung jetzt:

Der Kurento-Server ist gesichert, über HTTPS mit Letsencrypt laufen. Ich verwendete die folgenden Anweisungen, um den Server zu sichern:

https://doc-kurento.readthedocs.org/en/latest/mastering/securing-kurento-applications.html

jedoch auf dem obigen Beispiel fragt es die folgenden crt Dateien verketten:

cat signing-ca.crt subordinate-ca.crt server.crt > server.pem 

Ich bin verwirrt hier aber, da ich konnte finde die obigen Dateien nicht. Letsencrypt erzeugt folgende .pem-Dateien für mich:

cert.pem, chain.pem, fullchain.pem, privkey.pem

Sollte eine der oben genannten Dateien in der kurento.json.conf Datei verwendet werden?

Antwort

6

Sie eine der .pem Dateien sollten Sie erwähnt verwenden - Sie haben noch um alle .crt Dateien zu verketten, da Sie letsencrypt als eine Zertifizierungsstelle verwenden. Sie haben bereits eine certificate chain Dateien, und wie die Dokumentation erwähnt:

If this PEM certificate is a signed certificate (by a Certificate Authority such as Verisign), then you are done.

(Haftungsausschluss: Ich habe noch nie ‚letsencrypt‘ Dienste verwendet, so spreche ich im Allgemeinen)

Die von letsencrypt erzeugten Dateien sind nicht -indicative (wie auf dieser issue on GitHub berichtet), aber es scheint wie fullchain.pem ist die Datei, die Sie benötigen.

konfigurieren Kurento verwenden fullchain.pem als certificate:

root-ca ==> signing-ca ==> subordinate-ca ==> server

:

"secure": { 
    "port": 8433, 
    "certificate": "fullchain.pem", 
    "password": "" 
} 

Für das Protokoll, wenn Sie sign your own certificate, würden Sie cat, um eine Zertifikatskette folgend haben zum Erstellen

3

Ihre kurento.json.conf-Datei ist wahrscheinlich in Ordnung.

Ich bin vor einer Weile in diese Ausgabe geraten. Das Problem ist, dass Java das Websocket-Tunneln aus Sicherheitsgründen blockiert. Sie müssen setAllowedOrigins (*) innerhalb der Methode registerWebSocketHandlers hinzufügen. Hinweis: Dies ist nicht sicher und sollte nicht in einer Produktionsumgebung verwendet werden.

@Override 
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { 
registry.addHandler(handler(), "/helloworld").setAllowedOrigins("*"); 
} 

Hier ist die Antwort von der Kurento Team, warum es auf diese Weise codiert ... https://groups.google.com/d/msg/kurento/Q5ODV7hkuOc/RnsZKBaXDQAJ

+0

Da ich das Javascript Beispiel verwenden wie in: http://doc-kurento.readthedocs.org/en/stable/tutorials/js/tutorial-recorder.html Ich glaube nicht, ich brauche Ändern Sie alles im Java-Code. Es gibt auch keinen Java-Code, der das Beispiel begleitet. – user496607

+0

Ah, Entschuldigung. Ich nahm an, dass Sie die Java-Beispiele verwendeten. –

Verwandte Themen