重新加载 aiohttp SSL 证书

Reload aiohttp SSL Certificates

我是 运行 基于 aiohttp's high-level interface 的 SSL 安全 HTTP 服务器。我是运行服务器如下:

ssl_context = ssl.create_default_context()
ssl_context.load_cert_chain(certfile=ssl_certfile, keyfile=ssl_keyfile)
aiohttp.web.run_app(app, ssl_context=ssl_context)

更新 SSL 证书时,服务器不会选择更新的服务器证书,而是继续提供旧证书。

我似乎找不到任何关于在运行时续订 SSL 证书的文档。如何在运行时替换服务器的 SSL 证书?

您是否尝试过在需要时将新的证书链重新加载到您创建的 ssl_context 中,例如使用定时重复任务检查证书文件和密钥文件自上次加载后是否已更改?

基于对内部结构的了解...

...但是基于粗略的观察,我认为上下文不会以无法正常工作的方式被复制。

否则,我认为您最好在 SSL 证书续订后重新启动服务器。