在反向代理服务器 + Python HTTPS 服务器中,谁应该处理 HTTPS 连接的 SSL 证书?

In a reverse proxy server + Python HTTPS Server, who should handle SSL Certificates for HTTPS connections?

假设我想结合使用 NGinX(可能是另一个,因为它不代理 HTTP/2 请求)和 Hypercorn。由于两者都可以处理 SSL 证书文件,我想知道谁最适合为 HTTPS 请求执行此操作。 Hypercorn 可以监听 443 端口对我来说很重要,我不确定它是否可以在不指定 certfile 和 keyfile 参数的情况下做到这一点。

好吧,那取决于你想做什么。

最简单的解决方案是将两者都配置为使用 SSL。

Nginx 将接收请求,对其进行解密、处理,并将其作为 HTTPS 客户端发送到端口 443 上的 Hypercom。 Hypercom 将像任何普通的 HTTPS 客户端一样接收请求。

  • 如果您的目标是安全:两者兼顾
  • 如果你的目标只是为了不 直接公开 hypercom,您可以将其配置为不使用 SSL

默认情况下,Nginx 支持将请求代理到 HTTPS 上游,因此这是我认为的最佳解决方案。但是,您可能需要为 hypercom 设置 http-header,通过设置 X-Forwarded-ForX-Forwarded-Host 和 Hypercom 可能需要的任何 headers 来正确了解谁是客户端。