2016-07-01 15 views
2

Ich habe eine Django-App auf Ubuntu 14.04sslobj.do_handshake Versagen und „Fehler: [Errno 0] Fehler“

Wenn ich die Anfragen Modul oder das SMTP-Modul verwenden und versuchen, verschlüsselte Verbindungen herzustellen ich oft (nicht immer, meist jedes zweites Mal) erhält diesen Fehler:

Fehler: [Errno 0] Fehler

die langen Fehler (hier von E-Mail senden):

mod_wsgi (pid=17021): Exception occurred processing WSGI script '/var/www/primomedico/primomedico/wsgi.py'. 
[Fri Jul 01 15:11:11.432392 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] Traceback (most recent call last): 
[Fri Jul 01 15:11:11.432416 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/var/virtualenv/primo/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 189, in __call__ 
[Fri Jul 01 15:11:11.432459 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  response = self.get_response(request) 
[Fri Jul 01 15:11:11.432473 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/var/virtualenv/primo/lib/python2.7/site-packages/django/core/handlers/base.py", line 218, in get_response 
[Fri Jul 01 15:11:11.432496 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  response = self.handle_uncaught_exception(request, resolver, sys.exc_info()) 
[Fri Jul 01 15:11:11.432509 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/var/virtualenv/primo/lib/python2.7/site-packages/django/core/handlers/base.py", line 256, in handle_uncaught_exception 
[Fri Jul 01 15:11:11.432529 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  'request': request 
[Fri Jul 01 15:11:11.432542 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/usr/lib/python2.7/logging/__init__.py", line 1178, in error 
[Fri Jul 01 15:11:11.432564 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  self._log(ERROR, msg, args, **kwargs) 
[Fri Jul 01 15:11:11.432576 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/usr/lib/python2.7/logging/__init__.py", line 1271, in _log 
[Fri Jul 01 15:11:11.432595 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  self.handle(record) 
[Fri Jul 01 15:11:11.432606 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/usr/lib/python2.7/logging/__init__.py", line 1281, in handle 
[Fri Jul 01 15:11:11.432625 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  self.callHandlers(record) 
[Fri Jul 01 15:11:11.432637 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/usr/lib/python2.7/logging/__init__.py", line 1321, in callHandlers 
[Fri Jul 01 15:11:11.432655 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  hdlr.handle(record) 
[Fri Jul 01 15:11:11.432666 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/usr/lib/python2.7/logging/__init__.py", line 749, in handle 
[Fri Jul 01 15:11:11.432684 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  self.emit(record) 
[Fri Jul 01 15:11:11.432697 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/var/virtualenv/primo/lib/python2.7/site-packages/django/utils/log.py", line 129, in emit 
[Fri Jul 01 15:11:11.432718 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  self.send_mail(subject, message, fail_silently=True, html_message=html_message) 
[Fri Jul 01 15:11:11.432747 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/var/virtualenv/primo/lib/python2.7/site-packages/django/utils/log.py", line 132, in send_mail 
[Fri Jul 01 15:11:11.432767 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  mail.mail_admins(subject, message, *args, connection=self.connection(), **kwargs) 
[Fri Jul 01 15:11:11.432781 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/var/virtualenv/primo/lib/python2.7/site-packages/django/core/mail/__init__.py", line 98, in mail_admins 
[Fri Jul 01 15:11:11.432802 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  mail.send(fail_silently=fail_silently) 
[Fri Jul 01 15:11:11.432813 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/var/virtualenv/primo/lib/python2.7/site-packages/django/core/mail/message.py", line 303, in send 
[Fri Jul 01 15:11:11.432845 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  return self.get_connection(fail_silently).send_messages([self]) 
[Fri Jul 01 15:11:11.432858 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/var/virtualenv/primo/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 100, in send_messages 
[Fri Jul 01 15:11:11.432878 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  new_conn_created = self.open() 
[Fri Jul 01 15:11:11.432890 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/var/virtualenv/primo/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 64, in open 
[Fri Jul 01 15:11:11.432908 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  self.connection.starttls(keyfile=self.ssl_keyfile, certfile=self.ssl_certfile) 
[Fri Jul 01 15:11:11.432919 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/usr/lib/python2.7/smtplib.py", line 649, in starttls 
[Fri Jul 01 15:11:11.432937 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  self.sock = ssl.wrap_socket(self.sock, keyfile, certfile) 
[Fri Jul 01 15:11:11.432948 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/usr/lib/python2.7/ssl.py", line 487, in wrap_socket 
[Fri Jul 01 15:11:11.432965 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  ciphers=ciphers) 
[Fri Jul 01 15:11:11.432976 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/usr/lib/python2.7/ssl.py", line 243, in __init__ 
[Fri Jul 01 15:11:11.432992 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  self.do_handshake() 
[Fri Jul 01 15:11:11.433003 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] File "/usr/lib/python2.7/ssl.py", line 405, in do_handshake 
[Fri Jul 01 15:11:11.433020 2016] [:error] [pid 17021] [remote 84.189.143.193:9785]  self._sslobj.do_handshake() 
[Fri Jul 01 15:11:11.433042 2016] [:error] [pid 17021] [remote 84.189.143.193:9785] error: [Errno 0] Error 

I k nicht Was soll ich jetzt tun? Ich habe openssl unter Ubuntu und als Python-Paket installiert. Es ist auf dem neuesten Stand.

Muss ich Zertifikate manuell generieren? Bezieht sich dieses Problem auf etwas anderes?

das ist, wie ich E-Mail konfiguriert:

EMAIL_USE_TLS = True 
#EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
EMAIL_HOST = 'smtp.dd24.net' 
EMAIL_HOST_PASSWORD = 'abcdef' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_PORT = 587 
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER 

jede Hilfe sehr geschätzt wird.

+0

Vielleicht verwandte: [Python 2.7.5 - Web-App hängt für mehrere Stunden in ssl.py bei self._sslobj.do_handshake()] (http://stackoverflow.com/q/19938593) – jww

Antwort

4

Nach einer langen Recherche fand ich heraus, es ist ein Bug in Kryptografie-Modul.

See: https://github.com/pyca/cryptography/issues/2299

Abhilfe: Ort WSGIApplicationGroup% {GLOBAL}

in Apache Virtualhost Konfiguration z.B.

<Directory /var/www/path/to/wsgi> 
    <Files wsgi.py> 
     Require all granted 
    </Files> 
    WSGIApplicationGroup %{GLOBAL} 
</Directory>