【问题标题】:how to use openssl in flask(in" Flask Web Development")如何在flask中使用openssl(见《Flask Web Development》)
【发布时间】:2017-03-25 16:00:38
【问题描述】:

我的代码主要是基于书。 在我使用工厂函数之前,我通过如下代码启动我的应用程序以使用 https:

if __name__ == "__main__":
    context=(
        'openssl/server.crt',
        'openssl/server.key'
    )
    app.run('0.0.0.0', debug=True, port=8100,ssl_context=context)

我只需输入“python hello.py”就可以了。

当使用工厂和蓝图时,起始代码是:

if __name__ == '__main__':
    manager.run()

我使用 :"python manage.py runserver" 来启动我的应用程序。但是我是 cloudnt 并且我现在不知道如何使用 openssl 来启动。

另外,有人能告诉我openssl和Flask-SSLify的区别吗?

【问题讨论】:

  • 我对 Flask 不是很熟悉,但如果它类似于 Django,manage.py runserver 仅用于开发,你可能不需要 SSL。在这种情况下,您应该在 Flask 前面运行一个合适的 Web 服务器(例如 ngnix 或 Apache)。然后在该 Web 服务器中处理 SSL。
  • 我会尝试并了解它,非常感谢您的帮助。

标签: python python-3.x flask openssl


【解决方案1】:

Flask-Script的最新未发布版本中,SSL连接为supported。要使用它,您必须从 GitHub 上的源代码安装包,而不是 pip

之后,将以下更改应用到您的 ma​​nage.py

server = Server(host="0.0.0.0", port=8100, ssl_crt='openssl/server.crt', ssl_key='openssl/server.key')

manager = Manager(app)
manager.add_command("runserver", server)

if __name__ == '__main__':
    manager.run()

您可以像以前一样使用python manage.py runserver 使用 SSL 启动您的应用程序。

【讨论】:

  • 他是对的。在生产环境中,我们使用特定的 Web 服务器来托管 Flask 应用程序。以Nginx为例,你可以参考this tutorial为Flask设置Nginx,参考this在Nginx上安装SSL。
猜你喜欢
  • 2014-09-09
  • 2020-12-01
  • 1970-01-01
  • 2015-02-10
  • 2013-01-15
  • 2021-09-29
  • 2021-08-10
  • 2014-05-06
  • 1970-01-01
相关资源
最近更新 更多