title: SleekXMPP: "Certificate has expired."
body: <p>I'm currently trying to use the sleekxmpp module in Python3.5 to connect to jabber.at, an XMPP service. Jabber.at's SSL certificates are issued by Let's Encrypt.</p>
  
  <p>The problem I'm having is, when I try to log in to my jabber.at account using sleekxmpp, I get the following error:</p>
  
  <pre><code>INFO     Negotiating TLS
  INFO     Using SSL version: TLSv1
  ERROR    Certificate has expired.
  </code></pre>
  
  <p>I've tried to resolve this issue on Ubuntu 16.04, Manjaro GNOME 17, and Windows 10, with a fresh installation of Python, sleekxmpp, and all of sleekxmpp's dependencies, on each of those machines. It didn't make a difference.</p>
  
  <p>On each of my machines, I have the <a href="https://letsencrypt.org/certificates/" rel="nofollow noreferrer">Let's Encrypt Authority X3 certificate</a> installed, yet sleekxmpp still thinks the certificate is expired, even though the certificate is valid until 2022. Frustratingly, I'm able to log in to my XMPP account using Pidgin, and the certificate automatically saved by Pidgin (which you can find under ~/.purple/ in Linux) is exactly the same as the one I downloaded directly from Let's Encrypt.</p>
  
  <p>I've tried manually changing the ssl version in <a href="http://sleekxmpp.com/_modules/sleekxmpp/xmlstream/xmlstream.html" rel="nofollow noreferrer"><code>sleekxmpp.xmlstream.xmlstream.py:125</code></a> to <code>ssl.PROTOCOL_SSLv23</code>, but that didn't work, either. I've also tried manually specifying the path to the Let's Encrypt .crt file in <code>sleekxmpp.xmlstream.xmlstream.py:140</code>, but I still have the same issue.</p>
  
  <p>I should note that I do have <code>dnspython</code>, <code>pyasn1</code>, and <code>pyasn1_modules</code> installed on each machine. While I <em>can</em> successfully log into my jabber.at account by either uninstalling <code>pyasn1</code>, or explicitly ignoring certificates by setting <code>sleekxmpp.xmlstream.xmlstream.py:140</code> to <code>None</code>, that isn't a solution in my case - I must encrypt my connection.</p>
  
  <p>Is there anything I can do? I've been at this for days now, and I haven't been able to find any helpful solutions on Google.</p>
  
  <p>I appreciate any help!</p>