gpt4 book ai didi

python-3.x - 在 python/flask 中使用 .der 证书

转载 作者:太空宇宙 更新时间:2023-11-03 13:02:44 24 4
gpt4 key购买 nike

我有一个 python flask 应用程序,我在其中使用 ssl 创建了一个证书和 key 文件,并将其放入代码中,如下所示

if __name__=='__main__':
context=('cert.crt','keys.key')
app.run('0.0.0.0',ssl_context=context,debug=True)

但是它们是无效的。在我已部署代码的服务器中,有 2 个文件 'sslca-chain.der''SSLCA-Chain.pem'。我如何在代码中使用它而不是上面的代码?

最佳答案

你提到的两个文件是同一个东西(链证书)只是格式不同。

最好配置一个反向代理(如 nginx)来处理 SSL 内容,而不是将其包含在您的 flask 应用程序中。

Python 只处理 PEM 格式的文件。

但是,如果必须 - 您需要两个文件 - 证书文件和 key 文件。

如果您从第三方 CA 获得证书,那么他们会为您提供证书文件。

key 文件始终在您身边,应保密。

由于您有一个证书链,您必须为应用程序提供自定义上下文并将所有文件包含在您的链中,如 load_cert_chain method证书文件只接受一个参数。

所以,简而言之,您要做的是:

  1. 确保您的 PEM 文件包含您的服务器证书。
  2. 使用 PEM 文件和您的 key 文件创建自定义上下文。
  3. 将这个自定义上下文传递给 Flask

PEM 文件只是一个包含特定顺序的所有证书的文本文件;顺序是:

-----BEGIN CERTIFICATE----- 
(Your Primary SSL certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Intermediate certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Root certificate)
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE----------END CERTIFICATE----- 行很重要并且应该包括在内

一旦您确认您的 PEM 文件包含您的服务器证书,下面是您如何为 flask 配置它:

import ssl

ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) # use TLS to avoid POODLE
ctx.load_cert_chain('/path/to/sslca-chain.pem', '/path/to/server.key')
app.run('0.0.0.0',ssl_context=ctx,debug=True)

关于python-3.x - 在 python/flask 中使用 .der 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41423043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com