2012-10-21 28 views
5

Tôi gặp khó khăn trong việc thiết lập kết nối với XMPP (Prosody). Nhưng nếu tôi sử dụng PSI nó hoạt động tốt và yêu cầu đề xuất của bạn.XMPP SSL Handshake không thành công

Dưới đây là đoạn mã của python của tôi:

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

Trong chế độ gỡ lỗi:

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)) 

Mọi góp ý về vấn đề này sẽ được nhiều đánh giá cao. Mục đích là để kết nối với một máy chủ XMPP và tham gia MUC thông qua python.

+1

nào XMPP gói Python bạn đang sử dụng chính xác? –

+1

Bạn có thể thay đổi cấp độ nhật ký để gỡ lỗi cho tính ưu việt và thử kết nối và đăng nhật ký ở đây không? –

Trả lời

0

Khi tôi thấy rằng bạn đang sử dụng Python 2.7, hãy chắc chắn bạn đã cập nhật lên phiên bản mới nhất (2.7.11) vì có một số thay đổi SSL gần đây có thể làm hỏng nhiều mã.

0

Tôi gặp lỗi này trong Pidgin (libpurple 2.10.11) khi tôi không cung cấp chuỗi chứng chỉ ở phía máy chủ.

tôi giải quyết điều này bằng cách thêm các CA-bó (tức là chứng chỉ trung gian) ở phần cuối của giấy chứng nhận trên máy chủ:

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

Xem thêm https://prosody.im/doc/certificates#certificate_chains để biết thêm thông tin

Các vấn đề liên quan