2012-03-31 17 views
5

Estoy trabajando para que node-xmpp trabaje con un servidor jabber que tenemos aquí. Pude hacerlo funcionar con talk.google.com, y puedo conectarme a nuestro servidor interno con adium o ichat.no se puede conectar al servidor xmpp usando node-xmpp

  • v0.6.14 Nodo
  • CentOS 6,2/2.6.32
  • nodo-xmpp 0.3.2
  • OpenSSL 1.0.0

código connect

var j = new xmpp.Client({ 
    jid : '[email protected]', 
    password : 'pass', 
    host : 'chat.domain' 
}); 

Después de rastrear el código, parece que se atasca justo después de intentar actualizar la conexión ección a una conexión segura. Esto ocurre en starttls.js en la función starttls.

El evento pair.on ('seguro') nunca se llama, e incluso después de imprimir el par después de un tiempo de ajuste, todavía no parece estar autorizado. En este punto, no veo ningún dato dentro o fuera.

Después de mucho tiempo de estar allí (varios minites) imprime un error que se parece a esto

throw arguments[1]; // Unhandled 'error' event 
     ^
Error: 139644497663968:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error:s23_clnt.c:674: 

    at CleartextStream._pusher (tls.js:508:24) 
    at CleartextStream._push (tls.js:334:25) 
    at SecurePair.cycle (tls.js:734:20) 
    at EncryptedStream.write (tls.js:130:13) 
    at Socket.ondata (stream.js:38:26) 
    at Socket.emit (events.js:67:17) 
    at TCP.onread (net.js:367:14) 

El servidor está utilizando un CERT firmado uno mismo si lo que importa.

¿Alguna idea?

Gracias!

+1

¿Qué software de servidor está utilizando? (Voy a sacar mi cuello y adivino ... ¿Openfire?) – MattJ

+0

sí, openfire. –

+0

¿Alguna vez lo hiciste funcionar? Estamos teniendo el mismo problema con openfire y la última versión de node + node_xmpp. – dustyburwell

Respuesta

0

Parece que está enviando un protocolo de enlace TLS cuando el servidor no lo está esperando, por lo que el servidor no le devuelve el saludo.

Una posibilidad es que esté hablando de un TLS antiguo (primero, apretón de manos) a un servidor que implementa TLS inicial. En su código real, ¿está configurando el parámetro legacySSL? ¿Estás seguro de que estás hablando con un servidor XMPP en el cuadro de destino?

A wireshark trace nos daría los datos para poder decirlo con seguridad.

0

Tuve el mismo problema: la conexión se bloquea al intentar realizar un saludo de TLS con una instalación particular del servidor Openfire XMPP (aunque otros funcionó bien).

Después de casi perder el juicio, terminé modificando starttls.js que se envía con node-xmpp para usar tls.connect() y forzar SSLv3 y para mi sorpresa funcionó.

Gist aquí: https://gist.github.com/jamescoletti/6591173

Hope esto es útil a alguien.

+0

Esta esencia ha sido eliminada. ¿Es posible restaurar? – user1074891

Cuestiones relacionadas