Python wsgi:ssl-错误无法连接到 HTTPS URL 因为 SSL 模块不可用
Python wsgi:ssl-error Can't connect to HTTPS URL because the SSL module is not available
我刚刚从 Amazon ec2 实例迁移到 DigitalOcean Droplet。
在我 运行 配置我的 python 应用程序、WSGI 和 apache2 时遇到 SSL 问题之前,一切似乎都工作正常。
水滴:Ubuntu 16.04
Python版本:2.7.12
虚拟主机文件
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>
```
我的应用程序使用 python requests
模块发出 GET 请求。
请求 return 500
并且当我检查我的日志时,我可以看到
[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.
我搜索了很多。
我试过安装 openssl
,其他 conf,但真的很沮丧。
我不知道它在 Amazon ec2 中如何流畅运行,但在 Droplet 中却不流畅。
如能提供正确方向的帮助,我们将不胜感激。谢谢
我认为我安装的 python 版本有问题。安装了多个 python 版本,或者构建未正确构建。我在没有安装 python
的 Ubuntu 16.04 digitalOcean machine
上。所以我不得不手动安装它。我遵循了 https://askubuntu.com/questions/101591/how-do-i-install-python-2-7-2-on-ubuntu
上给出的答案
但是,似乎没有任何效果。
最后,我创建了一台全新的机器,但这次是 Ubuntu 14.04
,它已经安装了 python
。当我安装依赖项并部署我的 Flask 应用程序时,它工作正常。
已将 Ubuntu 16.04(没有 python)更改为 Ubuntu 14.04(安装了 python)。
如果您从源安装 Python,则必须重新运行
./configure
make
sudo checkinstall
安装 openssl 之后(我假设通过 sudo apt install openssl
)。
安装openssl和openssl-devel后,不需要再配置python
运行 以下命令:
make
make install
我玩得很开心(Ubuntu 14.04,Python 3.7),但最终还是成功了:
apt install libssl libssl-dev
# compile Python from source:
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
tar -xf Python-3.7.5.tgz
./configure --with-openssl=/openssl/ # make sure that this is where x509_vfy.h sits
make && make altinstall
我刚刚从 Amazon ec2 实例迁移到 DigitalOcean Droplet。 在我 运行 配置我的 python 应用程序、WSGI 和 apache2 时遇到 SSL 问题之前,一切似乎都工作正常。
水滴:Ubuntu 16.04 Python版本:2.7.12
虚拟主机文件
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>
```
我的应用程序使用 python requests
模块发出 GET 请求。
请求 return 500
并且当我检查我的日志时,我可以看到
[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.
我搜索了很多。
我试过安装 openssl
,其他 conf,但真的很沮丧。
我不知道它在 Amazon ec2 中如何流畅运行,但在 Droplet 中却不流畅。
如能提供正确方向的帮助,我们将不胜感激。谢谢
我认为我安装的 python 版本有问题。安装了多个 python 版本,或者构建未正确构建。我在没有安装 python
的 Ubuntu 16.04 digitalOcean machine
上。所以我不得不手动安装它。我遵循了 https://askubuntu.com/questions/101591/how-do-i-install-python-2-7-2-on-ubuntu
但是,似乎没有任何效果。
最后,我创建了一台全新的机器,但这次是 Ubuntu 14.04
,它已经安装了 python
。当我安装依赖项并部署我的 Flask 应用程序时,它工作正常。
已将 Ubuntu 16.04(没有 python)更改为 Ubuntu 14.04(安装了 python)。
如果您从源安装 Python,则必须重新运行
./configure
make
sudo checkinstall
安装 openssl 之后(我假设通过 sudo apt install openssl
)。
安装openssl和openssl-devel后,不需要再配置python
运行 以下命令:
make
make install
我玩得很开心(Ubuntu 14.04,Python 3.7),但最终还是成功了:
apt install libssl libssl-dev
# compile Python from source:
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
tar -xf Python-3.7.5.tgz
./configure --with-openssl=/openssl/ # make sure that this is where x509_vfy.h sits
make && make altinstall