如何使用 ssl 启动 flask_socketio 应用程序?

Posted

技术标签:

【中文标题】如何使用 ssl 启动 flask_socketio 应用程序?【英文标题】:how to start flask_socketio app with ssl? 【发布时间】:2020-09-21 23:37:39 【问题描述】:

我应该如何使用 SSL 将 app.run() 转换为 sockio.run()?

我有下面的应用程序启动代码与烧瓶开发服务器一起运行

if __name__=='__main__':
    app.run(ssl_context=(ssl_cert, ssl_key))

我现在正在尝试使用下面的 socketio 启动它

if __name__=='__main__':
    socketio.run(app, host='0.0.0.0', port=80, debug=True)

但是,我不知道如何将证书传递给此调用。 我该怎么做才能完成这项工作?

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。这相当于对我有用。

if __name__ == '__main__':
    socketio.run(app, host="0.0.0.0", port="80", debug=True, ssl_context=('cert.pem', 'key.pem'))

由于某种原因,在我的 Angular 应用程序能够访问烧瓶 socketio https 服务器之前,我必须在 Web 浏览器中手动输入服务器地址(即 https://127.0.0.1:5000/),但我认为这是我需要的客户端问题锻炼。

【讨论】:

【参考方案2】:

老问题,但无论如何我都会给出答案。试试这样的:

if __name__=='__main__':
    socketio.run(app, host='0.0.0.0', port=80, debug=True, keyfile='key.pem', certfile='cert.pem')

【讨论】:

这对我不起作用TypeError: run_simple() got an unexpected keyword argument 'keyfile'

以上是关于如何使用 ssl 启动 flask_socketio 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用码头设置 2 路 SSL 身份验证连接

如何设置启动SMTPPOP3以及IMAP4的SSL服务端口?

如何通过 SSL 连接到 Amazon RDS?

如何启用 ssl_module apache

使用 SSL 的 httpd 不会在 RHEL 6.3 中启动

如何在 Docker 容器中向 Tomcat 添加 SSL 证书?