2012-10-21 24 views
5

Ho difficoltà a stabilire una connessione con XMPP (Prosody). Ma se uso PSI funziona bene e richiedo i tuoi suggerimenti.XMPP SSL Handshake non riuscito

Ecco il frammento di codice del mio pitone:

client = xmpp.Client(host) 
client.connect(server=(host,port)) 
client.auth(username, passwd,resource='', sasl=1) 
client.sendInitPresence() 

In modalità di debug:

DEBUG: dispatcher warn Registering protocol "error" as <class 'xmpp.protocol.Protocol'>(http://etherx.jabber.org/streams) 
DEBUG: socket  sent <?xml version='1.0'?><stream:stream xmlns="jabber:client" to="localhost" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" > 
DEBUG: socket  error Socket error while receiving data 
         Traceback (most recent call last): 
          File "/usr/local/lib/python2.7/dist-packages/xmpp/transports.py", line 161, in receive 
          try: received = self._recv(BUFLEN) 
          error: [Errno 104] Connection reset by peer 
DEBUG: client  stop Disconnect detected 
DEBUG: socket  error Socket operation failed 
         Traceback (most recent call last): 
          File "/usr/local/lib/python2.7/dist-packages/xmpp/transports.py", line 161, in receive 
          try: received = self._recv(BUFLEN) 
          error: [Errno 104] Connection reset by peer 
DEBUG: socket  error Socket error while receiving data 
DEBUG: client  stop Disconnect detected 

**Prosody logs :** 
Oct 20 23:46:39 c2s94ba718  info Client connected 
Oct 20 23:46:39 c2s94ba718  info Client disconnected: ssl handshake failed 
Oct 20 23:46:39 c2s94ba718  info Destroying session for (unknown) ((unknown)@(unknown)) 
Oct 20 23:48:57 c2s96052a0  info Client connected 
Oct 20 23:48:57 c2s96052a0  info Client disconnected: ssl handshake failed 
Oct 20 23:48:57 c2s96052a0  info Destroying session for (unknown) ((unknown)@(unknown)) 

Tutti i suggerimenti su questo sarebbe molto apprezzato. L'obiettivo è connettersi a un server XMPP e unirsi a un MUC tramite Python.

+1

Quale pacchetto Python XMPP stai usando esattamente? –

+1

È possibile modificare il livello di log per eseguire il debug di prosodia e provare a connettersi e pubblicare i log qui? –

risposta

0

Come vedo che stai usando Python 2.7, assicurati di aver aggiornato alla versione più recente (2.7.11) perché ci sono alcune modifiche SSL che potrebbero interrompere un sacco di codice.

0

Ho riscontrato questo errore in Pidgin (libpurple 2.10.11) quando non fornivo una catena di certificati sul lato server.

Ho risolto questo con l'aggiunta del CA-fascio (cioè certificato intermedio) alla fine del certificato sul server:

cat /path/to/ica.crt >> /path/to/prosody.crt 

vedono anche https://prosody.im/doc/certificates#certificate_chains per ulteriori informazioni

Problemi correlati