是否可以在同一主机上运行 HTTPS 应用程序?
例如:
Python FastAPI 后端位于端口 8000,使用 HTTPS。
JS React 前端使用 HTTPS 在端口 4000 上。
如果没有 TLS 代理,它可以工作吗?
我读到一篇博客,主机只能有一个证书,并且只有一个应用程序可以使用 HTTPS。
是否可以在同一主机上运行 HTTPS 应用程序?
例如:
Python FastAPI 后端位于端口 8000,使用 HTTPS。
JS React 前端使用 HTTPS 在端口 4000 上。
如果没有 TLS 代理,它可以工作吗?
我读到一篇博客,主机只能有一个证书,并且只有一个应用程序可以使用 HTTPS。
是的,您可以在同一主机上运行多个 https 服务。
“我读到过,一台主机只能拥有一个证书”——这从来都不是真的。我不知道你在哪里读到这篇文章。12 年前,每个 IP 地址和端口组合只能拥有一个证书(这一限制已被SNI删除)。按照惯例,网络服务器在逻辑上被划分为单独的功能包,通常称为虚拟主机 - 并且按照惯例,每个虚拟主机只能拥有 0 或 1 个证书。
即使在 SNI 出现之前,您也可以使用反向代理将不同的路径与不同的后端关联起来,轻松地在单个 IP 地址 + 端口上聚合多个后端。
然而,几乎所有应用程序服务器在 HTTP/HTTPS 方面都非常糟糕(例如支持虚拟主机)。此外,将应用程序服务器直接暴露给网络几乎总是不利于性能、安全性和容量。没有充分的理由不在这样的服务前面使用轻量级代理(nginx、haproxy、lighttpd......)。