fritzy / SleekXMPP

Python 2.6+/3.1+ XMPP Library
http://groups.google.com/group/sleekxmpp-discussion
Other
1.1k stars 299 forks source link

Let's Encrypt Certificate not accepted : does not match format '%Y%m%d%H%M%SZ' #464

Open inkhey opened 7 years ago

inkhey commented 7 years ago

Hello, i'm trying to use sleekXMPP with python3 to connect to my server with python package sleekxmpp, dnspython, pyasn1_modules, pyasn1 installed with pip3 in my virtualenv on Debian Jessie, but it's doesn't work .

I've got a weird bug about my Let's Encrypt Certificate, it's seems that expiration date is not correctly parsed .


INFO     Negotiating TLS
INFO     Using SSL version: TLSv1
DEBUG    CERT: -----BEGIN CERTIFICATE-----
MIIE/TCCA+WgAwIBAgISA2SoTD8NqwhIzBOfl8Wbfy/GMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzA5MDEwMDAxMDBaFw0x
NzExMzAwMDAxMDBaMBgxFjAUBgNVBAMTDWlua2V5LWFydC5uZXQwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDst0SqxtOAJejp1CijmFnPgGsxArFq9vB8
LwylCeeWn+7AzyW/R/barBavVryICQ8pQ2qnvtcoBuI4MNi6JUsZ0Lh9xGC0/M1R
4IMA4vc/LbbmNscBBg3LgcERKO2no2EP4XpgWhVQe92qwkRT6F4lxLNMMz7vkSq3
YVmApjmGGL9diW67vOGI4/+HE5OnZknnkr8olz6Olwn/IQ0kJu0PjfhQ8zYEVDpK
Cor78FUPk21q96yGFVElTmK1XzuEuWDhcD8mRmMCSRdJWwnRPEx5WJiBmdW9feb3
fWT/z/AMXtMWDNm3qC7YxjxswX26Xfbr1/zdvLelOnmrnLa/e4CZAgMBAAGjggIN
MIICCTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF
BwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMegkUDxUZ7RCfca7vrEU0MEqcUb
MB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMG8GCCsGAQUFBwEBBGMw
YTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNyeXB0Lm9y
ZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgzLmxldHNlbmNyeXB0Lm9y
Zy8wGAYDVR0RBBEwD4INaW5rZXktYXJ0Lm5ldDCB/gYDVR0gBIH2MIHzMAgGBmeB
DAECATCB5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMu
bGV0c2VuY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNh
dGUgbWF5IG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFu
ZCBvbmx5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5
IGZvdW5kIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0G
CSqGSIb3DQEBCwUAA4IBAQBqB+LfIrC7f7pBpk7t3FX7KcVOI49pH0Q7gYxXVGtZ
7ydAx5EIsvB+nf/iQGzbVG2QYXthhQZVm2kcfoowZG9FDGnKKC9ziNXNBMzKoZSa
z5LG8jyvMDZFruPm2iYyhv20QTVKElSuxnPrXoUR/tGye4BPxXtTQpRdMccg5rVG
QOMuqrwgedLPlBa+XoXQGN/aqUWieKVD5lKFlIz6jV414Bo1SM66ZGhTFMq4OIsh
kc29JUhGs0OoYNLNwYRBvLrI/Q1ETn2VVkjmERJ7uzbUx870+yVe5x3U0Asx5XG3
DZC3PIGu2Cnt4De88IvpNrnP4yhSf7M8IX9NhYUgByFw
-----END CERTIFICATE-----

DEBUG    Event triggered: ssl_cert
ERROR    time data '170901000100Z' does not match format '%Y%m%d%H%M%SZ'
Traceback (most recent call last):
  File "/home/inkey/.virtualenvs/bot/lib/python3.4/site-packages/sleekxmpp/xmlstream/xmlstream.py", line 1492, in _process
    if not self.__read_xml():
  File "/home/inkey/.virtualenvs/bot/lib/python3.4/site-packages/sleekxmpp/xmlstream/xmlstream.py", line 1564, in __read_xml
    self.__spawn_event(xml)
  File "/home/inkey/.virtualenvs/bot/lib/python3.4/site-packages/sleekxmpp/xmlstream/xmlstream.py", line 1632, in __spawn_event
    handler.prerun(stanza_copy)
  File "/home/inkey/.virtualenvs/bot/lib/python3.4/site-packages/sleekxmpp/xmlstream/handler/callback.py", line 64, in prerun
    self.run(payload, True)
  File "/home/inkey/.virtualenvs/bot/lib/python3.4/site-packages/sleekxmpp/xmlstream/handler/callback.py", line 76, in run
    self._pointer(payload)
  File "/home/inkey/.virtualenvs/bot/lib/python3.4/site-packages/sleekxmpp/features/feature_starttls/starttls.py", line 64, in _handle_starttls_proceed
    if self.xmpp.start_tls():
  File "/home/inkey/.virtualenvs/bot/lib/python3.4/site-packages/sleekxmpp/xmlstream/xmlstream.py", line 889, in start_tls
    cert.verify(self._expected_server_name, self._der_cert)
  File "/home/inkey/.virtualenvs/bot/lib/python3.4/site-packages/sleekxmpp/xmlstream/cert.py", line 133, in verify
    not_before, not_after = extract_dates(raw_cert)
  File "/home/inkey/.virtualenvs/bot/lib/python3.4/site-packages/sleekxmpp/xmlstream/cert.py", line 111, in extract_dates
    not_before = datetime.strptime(not_before, '%Y%m%d%H%M%SZ')
  File "/usr/lib/python3.4/_strptime.py", line 500, in _strptime_datetime
    tt, fraction = _strptime(data_string, format)
  File "/usr/lib/python3.4/_strptime.py", line 337, in _strptime
    (data_string, format))
ValueError: time data '170901000100Z' does not match format '%Y%m%d%H%M%SZ'
inkhey commented 7 years ago

It Seems related to #462. No problem with SleekXMPP 1.3.1.

Neustradamus commented 5 years ago

It is ok with 1.3.2.

Neustradamus commented 5 years ago

@inkhey: Any news?

Have you tested with "master"?

It works?