Python 3.x 在python/flask中使用.der证书
我有一个python flask应用程序,我使用ssl创建了一个证书和密钥文件,并将其放入代码中,如下所示Python 3.x 在python/flask中使用.der证书,python-3.x,ssl,flask,ssl-certificate,Python 3.x,Ssl,Flask,Ssl Certificate,我有一个python flask应用程序,我使用ssl创建了一个证书和密钥文件,并将其放入代码中,如下所示 if __name__=='__main__': context=('cert.crt','keys.key') app.run('0.0.0.0',ssl_context=context,debug=True) 然而,它们是无效的。在我部署代码的服务器中,有两个文件'sslca-chain.der'和'sslca-chain.pem'。我如何在代码中使用它而不是上面的
if __name__=='__main__':
context=('cert.crt','keys.key')
app.run('0.0.0.0',ssl_context=context,debug=True)
然而,它们是无效的。在我部署代码的服务器中,有两个文件
'sslca-chain.der'
和'sslca-chain.pem'
。我如何在代码中使用它而不是上面的 您提到的两个文件是相同的(链证书),只是格式不同
最好配置一个反向代理(如nginx)来处理SSL内容,而不是将其包含在flask应用程序中
Python只处理本机的PEM
格式文件
但是,如果必须,您需要两个文件:证书文件和密钥文件
如果您从第三方CA获得证书,则他们将向您提供证书文件
密钥文件始终与您在一起,应该保密
由于您有一个证书链,因此必须为应用程序提供自定义上下文,并包括链中的所有文件,因为证书文件只接受一个参数
总之,你要做的是:
-----BEGIN CERTIFICATE-----
(Your Primary SSL certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Intermediate certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Your Root 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)
奇怪的是,我有pem文件,在sperate下有两个条目----开始证书----和----结束证书------。不确定密钥文件在哪里。有办法找到答案吗??使用Windows server 2008 64位,您将有多个
--开始证书--
和--结束证书--
行对;每个中间证书一个,一直到根证书(最后一对)。如果您不知道密钥文件在哪里,请询问为您获得证书的人;因为它是在请求时生成的。