alekstorm / backports.ssl

UNMAINTAINED - The Python 3.4 standard `ssl` module API implemented on top of pyOpenSSL

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Python 3.4.4 (Windows) - backports.ssl example code (modified for Python3) does not run

paul-hammant opened this issue · comments

This:

import backports.ssl as ssl
import socket

context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
context.verify_mode = ssl.CERT_REQUIRED

conn = context.wrap_socket(socket.socket(socket.AF_INET))
conn.connect(('google.com', 443))
print(conn.getpeercert()) # modified for Python3
conn.close()

Results in:

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\backports\ssl\core.py", line 201, in _safe_ssl_call
    return getattr(sock, call)(*args, **kwargs)
  File "C:\Python34\lib\site-packages\OpenSSL\SSL.py", line 1442, in do_handshake
    self._raise_ssl_error(self._ssl, result)    
  File "C:\Python34\lib\site-packages\OpenSSL\SSL.py", line 1187, in _raise_ssl_error
    _raise_current_error()    
  File "C:\Python34\lib\site-packages\OpenSSL\_util.py", line 48, in exception_from_error_queue
    raise exception_type(errors)
OpenSSL.SSL.Error: [('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "test_outlook_imap.py", line 8, in <module>
    conn.connect(('google.com', 443))
  File "C:\Python34\lib\site-packages\backports\ssl\core.py", line 258, in connect
    self.do_handshake()
  File "C:\Python34\lib\site-packages\backports\ssl\core.py", li�ne 261, in do_handshake
    _safe_ssl_call(False, self._conn, 'do_handshake')
  File "C:\Python34\lib\site-packages\backports\ssl\core.py", line 222, in _safe_ssl_call
    raise SSLError(*e.args)
backports.ssl.core.SSLError: [('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')]