2016-02-03 14 views
10

Sto cercando di eseguire la registrazione esempio JavaScript del Kurento WebRTC come visto in:Kurento - WebSocket Connessione fallita

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

Ho installato Kurento su una macchina Ubuntu ed è in esecuzione su OK. Anche il servizio è iniziato. Inoltre ho testato l'esempio basato su Java ed era in esecuzione senza problemi.

I js esempio la registrazione non riuscita con il seguente errore:

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

ho cambiato la variabile ws_uri per puntare a una presa di web sicuro:

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

Tuttavia, ottengo il seguente errore ora:

WebSocket connection to 'wss://XYZ:8433/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED 

Il server kurento è protetto per essere eseguito su HTTPS utilizzando il codice di licenza. Ho usato le seguenti istruzioni per proteggere il server:

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

Tuttavia, l'esempio precedente si chiede di concatenare i seguenti file CRT:

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

Sono confuso qui però, dal momento che ho potuto non trovare i file sopra. Letsencrypt genera i seguenti file .pem per me:

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

caso in uno dei file di cui sopra essere utilizzato nel file kurento.json.conf?

risposta

6

Si deve usare uno dei file .pem che hai menzionato - Non è necessario concatenare tutti i file .crt, poiché si utilizza letsencrypt come autorità di certificazione. Hai già un file certificate chain, e come la documentazione menzioni:

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

(Diniego: Non ho mai usato servizi 'letsencrypt', in modo da sto parlando in generale)

I file generati da letsencrypt non sono -indicativo (come riportato su questo issue on GitHub), ma sembra che fullchain.pem sia il file che ti serve.

Configurare Kurento da utilizzare fullchain.pem come certificate:

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

Per la cronaca, se si dovesse sign your own certificate, si sarebbe usato cat al fine di creare una catena di certificati come segue:

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

3

Il file kurento.json.conf probabilmente sta bene.

Mi sono imbattuto in questo problema un po 'di tempo fa. Il problema è che java sta bloccando il tunneling websocket per motivi di sicurezza. È necessario aggiungere setAllowedOrigins (*) all'interno del metodo registerWebSocketHandlers. Nota: non è sicuro e non deve essere utilizzato in un ambiente di produzione.

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

Ecco la risposta da parte del team di Kurento sul motivo per cui è codificato in questo modo ... https://groups.google.com/d/msg/kurento/Q5ODV7hkuOc/RnsZKBaXDQAJ

+0

Dal momento che sto usando l'esempio javascript come in: http://doc-kurento.readthedocs.org/en/stable/tutorials/js/tutorial-recorder.html Non penso che ho bisogno di cambia qualcosa nel codice Java. Non esiste alcun codice Java che accompagni l'esempio. – user496607

+0

Ah, mi dispiace. Ho pensato che stavi usando gli esempi Java. –

Problemi correlati