web-dev-qa-db-fra.com

Python wsgi: ssl-error Impossible de se connecter à l'URL HTTPS car le module SSL n'est pas disponible.

Je viens de migrer d'instance Amazon ec2 vers le droplet DigitalOcean . Tout semble bien fonctionner jusqu'à ce que je rencontre le problème SSL lorsque je configure mon application python, WSGI et Apache2.

Droplet: Ubuntu 16.04 Version Python: 2.7.12

Fichier VirtualHost

WSGISocketPrefix /var/run/wsgi                                                           
<VirtualHost *:80>                                                                       
ServerName c123456.com                                                               
#translatr.varunmalhotra.xyz                                                         

#DocumentRoot /var/www/html                                                          
#ErrorDocument 404 /notFound404.html                                                 
ErrorLog /var/log/translatr.error.log                                                
CustomLog /var/log/translatr.access.log combined                                     

WSGIDaemonProcess translatrapp python-path=/var/www/html/translatr:/var/www/html/translatr/ENV/lib/python2.7/site-packages                                                    
WSGIScriptAlias / /var/www/html/translatr/translatrapp.wsgi                          

<Directory /var/www/html/translatr>                                                  
    WSGIProcessGroup translatrapp                                                    
    WSGIApplicationGroup %{GLOBAL}                                                   
    Order deny,allow                                                                 
    Allow from all                                                                   
</Directory>                                                                         


`` `

Mon application utilise python le module requests pour effectuer une demande GET . Les demandes renvoient 500 et lorsque je vérifie mes journaux, je peux voir

[Sat Jan 28 10:46:23.754636 2017] [wsgi:error] [pid 6627:tid 139754554279680]     request
 = requests.get(link, headers=agents, verify=False)                                      
[Sat Jan 28 10:46:23.754641 2017] [wsgi:error] [pid 6627:tid 139754554279680]   File "/va
r/www/html/translatr/ENV/lib/python2.7/site-packages/requests/api.py", line 69, in get   
[Sat Jan 28 10:46:23.754645 2017] [wsgi:error] [pid 6627:tid 139754554279680]     return 
request('get', url, params=params, **kwargs)                                             
[Sat Jan 28 10:46:23.754650 2017] [wsgi:error] [pid 6627:tid 139754554279680]   File "/va
r/www/html/translatr/ENV/lib/python2.7/site-packages/requests/api.py", line 50, in reques
t                                                                                        
[Sat Jan 28 10:46:23.754655 2017] [wsgi:error] [pid 6627:tid 139754554279680]     respons
e = session.request(method=method, url=url, **kwargs)                                    
[Sat Jan 28 10:46:23.754659 2017] [wsgi:error] [pid 6627:tid 139754554279680]   File "/va
r/www/html/translatr/ENV/lib/python2.7/site-packages/requests/sessions.py", line 468, in 
request                                                                                  
[Sat Jan 28 10:46:23.754664 2017] [wsgi:error] [pid 6627:tid 139754554279680]     resp = 
self.send(prep, **send_kwargs)                                                           
[Sat Jan 28 10:46:23.754669 2017] [wsgi:error] [pid 6627:tid 139754554279680]   File "/va
r/www/html/translatr/ENV/lib/python2.7/site-packages/requests/sessions.py", line 597, in 
send                                                                                     
[Sat Jan 28 10:46:23.754673 2017] [wsgi:error] [pid 6627:tid 139754554279680]     history
 = [resp for resp in gen] if allow_redirects else []                                     
[Sat Jan 28 10:46:23.754678 2017] [wsgi:error] [pid 6627:tid 139754554279680]   File "/va
r/www/html/translatr/ENV/lib/python2.7/site-packages/requests/sessions.py", line 195, in 
resolve_redirects                                                                        
[Sat Jan 28 10:46:23.754683 2017] [wsgi:error] [pid 6627:tid 139754554279680]     **adapt
er_kwargs                                                                                
[Sat Jan 28 10:46:23.754687 2017] [wsgi:error] [pid 6627:tid 139754554279680]   File "/va
r/www/html/translatr/ENV/lib/python2.7/site-packages/requests/sessions.py", line 576, in 
send                                                                                     
[Sat Jan 28 10:46:23.754692 2017] [wsgi:error] [pid 6627:tid 139754554279680]     r = ada
pter.send(request, **kwargs)                                                             
[Sat Jan 28 10:46:23.754697 2017] [wsgi:error] [pid 6627:tid 139754554279680]   File "/va
r/www/html/translatr/ENV/lib/python2.7/site-packages/requests/adapters.py", line 433, in 
send                                                                                     
[Sat Jan 28 10:46:23.754702 2017] [wsgi:error] [pid 6627:tid 139754554279680]     raise S
SLError(e, request=request)                                                              │
[Sat Jan 28 10:46:23.754706 2017] [wsgi:error] [pid 6627:tid 139754554279680] SSLError: C│
an't connect to HTTPS URL because the SSL module is not available.

J'ai beaucoup cherché . J'ai essayé d'installer openssl, une autre conf, mais j'étais vraiment frustré . Je ne sais pas comment ça marche sans heurts dans Amazon ec2 mais pas dans Droplet.

Toute aide dans le bon sens serait appréciée. Merci

6
softvar

Je pense que quelque chose ne va pas avec ma version de python installée. Soit plusieurs versions de python étaient installées, soit la construction n'était pas construite correctement. J'étais sur Ubuntu 16.04 digitalOcean machine qui vient sans l'installation de python. J'ai donc dû l'installer manuellement. J'ai suivi la réponse donnée sur https://askubuntu.com/questions/101591/how-do-i-install-python-2-7-2-on-ubuntu

Mais rien ne semblait fonctionner.

Enfin, j'ai créé une nouvelle machine neuve mais cette fois, c'était Ubuntu 14.04 qui vient avec python déjà installé. Lorsque j'ai installé les dépendances et déployé mon application Flask, cela a fonctionné correctement.

Modifié Ubuntu 16.04 (sans python) en Ubuntu 14.04 (avec python installé).

1
softvar

Si vous avez installé Python à partir de la source, vous devrez réexécuter

./configure
make
Sudo checkinstall

APRÈS que vous ayez installé openssl (je suppose via Sudo apt install openssl).

7
kshikama