SSL routines SSL23_READ ssl handshake failure

Одним абзацем:

Если у вас при веб-скрэпинге вылетает такое:

2016-01-01 14:21:13+0000 [spider] ERROR: Error downloading : <https://site.com>: [<twisted.python.filure.Failure OpenSSL.SSLError: [('SSL routines', 'SSL23_READ', 'ssl handshake failure')]>]

И вы используете прокси (а вы скорее всего используете!). То, возможно, дело не в SSL протоколе, не в прокси, не в версии Twisted, а в методе base64.encodestring(), который добавляет лишний \n в конце возвращаемой строки. Достаточно просто отсечь этот лишний символ:

# Было
request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass
 
# Стало
request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass.strip()

Подсмотрено тут: http://stackoverflow.com/a/36340804