【问题标题】:Enable https on Werkzeug using key/cert as Strings使用密钥/证书作为字符串在 Werkzeug 上启用 https
【发布时间】:2018-04-05 17:52:37
【问题描述】:

是否可以在基于 Werkzeug 的 Python 应用程序上启用 HTTPS,而不必使用证书的静态路径,而是直接将它们作为字符串传递?

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

我想将这样的内容传递给上下文:

certificate = '-----BEGIN CERTIFICATE REQUEST-----
MIIB9TCCAWACAQAwgbgxGTAXBgNVBAoMEFF1b1ZhZGlzIExpbWl0ZWQxHDAaBgNV
BAsME0RvY3VtZW50IERlcGFydG1lbnQxOTA3BgNVBAMMMFdoeSBhcmUgeW91IGRl
...
98TwDIK/39WEB/V607As+KoYazQG8drorw==
-----END CERTIFICATE REQUEST-----'

key = '-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDg
MBQGCCqGSIb3DQMHBAgD1kGN4ZslJgSCBMi1xk9jhlPxPc
9g73NQbtqZwI+9X5OhpSg/2ALxlCCjbqvzgSu8gfFZ4yo+
A .... MANY LINES LIKE THAT ....
X0R+meOaudPTBxoSgCCM51poFgaqt4l6VlTN4FRpj+c/Wc
blK948UAda/bWVmZjXfY4Tztah0CuqlAldOQBzu8TwE7WD
H0ga/iLNvWYexG7FHLRiq5hTj0g9mUPEbeTXuPtOkTEb/0
GEs=
-----END ENCRYPTED PRIVATE KEY-----'

这样,将 SSL 数据作为环境值传递会更容易。

【问题讨论】:

    标签: python ssl-certificate werkzeug


    【解决方案1】:

    对于我通过Werkzeug code 阅读的内容,ssl_context 选项被传递给ssl.SSLContext.load_cert_chain,其中 certfile 字符串必须是 PEM 格式的单个文件的路径。所以答案是

    您可以创建一个NamedTemporaryFile,但我认为您应该仔细查看它的安全含义。

    【讨论】:

      猜你喜欢
      • 2011-01-04
      • 2019-02-05
      • 2019-07-30
      • 1970-01-01
      • 2018-07-19
      • 2011-12-09
      • 1970-01-01
      • 2019-02-15
      • 2020-09-01
      相关资源
      最近更新 更多