Python Flask:自动获取或生成 SHA-1 指纹

问题描述 投票:0回答:1

我创建了一个在 HTTPS 上运行的简单 Flask 服务器,可以通过外部设备访问。

当我连接其他设备(例如 ESP8266)时,我需要提供 SHA-1 指纹。

我无法控制生成的 SHA-1 指纹(而且我不知道它是如何生成的)。

到目前为止,我总是必须从浏览器(firefox)复制并粘贴 SHA-1 指纹:我需要通过浏览器访问服务器 URL,单击 URL 旁边的锁定符号,单击“查看证书” "并复制并粘贴 SHA-1 指纹。

每次重新启动服务器时,SHA-1 指纹都会发生变化,因此每次都必须复制并粘贴它(如上所述),这非常耗时。

我想知道是否有办法:

  • 生成我自己的 SHA-1 指纹(以便每次启动服务器时它始终相同) 或
  • 自动获取 SHA-1 指纹(也许通过 Flask 函数?)并将其打印在文本文件中。

我在互联网上做了一些研究,但到目前为止什么也没发现:(

提前谢谢您!

这是我的代码:

from flask import Flask, request

app = Flask(__name__)

@app.route("/", methods=["GET"])
def hello():
    return "Hello World!

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8080, ssl_context='adhoc')
python flask https
1个回答
0
投票
import ssl, hashlib

cert = ssl.get_server_certificate(('my_server_url', my_server_port))

pem_cert = ssl.PEM_cert_to_DER_cert(cert)
sha1_fingerprint = hashlib.sha1(pem_cert).hexdigest()
print(sha1_fingerprint)

非常感谢!

© www.soinside.com 2019 - 2024. All rights reserved.