Django 1.11:Python 3.6 升级导致 SSL 连接出现问题

Django 1.11: Python 3.6 Upgrade causes issues with SSL connections

我刚刚在 MacOS Sierra 中将我的 Django 1.10 (Python 3.5) 应用程序升级到 Django 1.11 (Python 3.6)。

大多数事情仍然有效,但我意识到 SSL 连接不再像以前那样工作了。我注意到我的 AWS S3 服务和 python manage.py collectstatic 存在一些问题。这些功能未通过 AWS connecting/being 验证。

这是我第一次处理 Django 应用程序的更新,所以我不太确定处理这些问题的正确方法是什么。

我做了一些研究,发现这是来自使用 python 3.6 的 Mac 的预期问题。

有谁知道为此寻找解决方案是否值得,或者 切换回 python 3.5 是否更好?

根据Python 3.6 ReadMe.rft:

证书验证和OpenSSL

NEW Python 3.6 的这个变体现在包括它自己的 OpenSSL 1.0.2 私有副本。与以前的版本不同,不再使用已弃用的 Apple 提供的 OpenSSL 库。这也意味着由钥匙串访问应用程序和安全命令行实用程序管理的系统和用户钥匙串中的信任证书不再被 Python ssl 模块用作默认值。对于 3.6.0,示例命令脚本包含在 /Applications/Python 3.6 中,用于从第三方 certifi 包 (https://pypi.python.org/pypi/certifi) 安装精选的默认根证书包。如果您选择使用 certifi,您应该考虑订阅该项目的电子邮件更新服务,以便在更新证书包时收到通知。 Python 3.6 安装程序附带的捆绑 pip 有自己的默认证书存储区,用于验证下载连接。

好的,我意识到我的项目出了什么问题。

我将 django-storages-redux 与 boto 一起使用。 现在我必须更新到 boto3 并使用 django-storages 库。