如何使用自签名证书限制访问?

How to restrict access by using a self-signed certificate?

我有一个 python 脚本,它希望使用自签名证书通过 HTTPS 与 Flask 应用程序通信。

我已经使用 openssl 创建了一个 SSL 证书。我希望 Flask 只接受使用该证书的连接并拒绝那些不使用该证书的连接。

任何人都可以告诉我该怎么做吗?

我认为 flask 做不到。 Flask 只负责构建内容。它实际上在开发模式下使用 Werkzeug 作为后端。

在开发过程中,werkzeug 的内置服务器支持用于测试目的的 SSL:

run_simple('localhost', 4000, application,
       ssl_context=('/path/to/the/key.crt',
                    '/path/to/the/key.key'))

详情可见here.

当涉及到生产时,必须使用更高效的 WSGI 后端来分解 Flask 项目。那里有很多后端,例如 gunicorn and uWSGI(with nginx)。如果您选择使用其中之一,您可能需要查看他们的文档以了解如何添加 HTTPS 支持。