一个路由器上有两个树莓派 - SSL

一个路由器上有两个树莓派 - SSL

我有以下内容:

外部 IP 地址为 209.xx.xx.xx 的路由器。此路由器将转发到第一个 rpi(rpi#1)的 IP 地址(端口 80 和 443 到 192.168.1.170)以及第二个 pi(rpi#2)的随机端口(1234)。

来自 noip.com 的域名通过 209.xx.xx.xx 转发到 rpi#1。我为 rpi#1 添加了 SSL(letsencrypt)。现在它是安全的(http -> https)。

我在同一个路由器上的 192.168.1.139 上安装了第二个 rpi (rpi#2)。路由器将端口 (1234) 转发到 rpi#2。这不安全 (http)。

一切运行良好。

现在:我想将 SSL 添加到 rpi#2。但是,由于 noip.com 只能转发到一个外部 IP 地址,因此我无法将 SSL 添加到 rpi#2。

非常感谢您的帮助。

答案1

选项 1:将其中一个 Rpi(或其他始终在线的设备)配置为 HTTP反向代理。(您可以使用标准的 Web 服务器,例如 Nginx 或 Apache httpd;只需为两个域创建 VirtualHosts 并启用代理。)

请注意,由于客户端仅与代理通信(而不是与最终服务器通信),因此必须在代理系统上配置所有 TLS 证书。代理→最终服务器连接可以使用纯 HTTP,也可以使用带有自定义证书的 HTTPS,这并不重要。

  1. 配置设备 A,将域 B 的纯 HTTP 代理到设备 B –除了对于/.well-known/acme-challenge路径,该路径仍应由设备 A 的 /var/www 或类似设备提供。
  2. 在设备 A 上配置您的 Let's Encrypt 客户端以获取两个域的证书。
  3. 配置设备 A 上的代理以使用新的 HTTPS 证书。

选项 2:将其中一个 Rpi(或其他始终在线的设备)配置为TLS SNI 代理。 这sniproxy程序可以用于此目的;HAproxy 可能也有类似的选项。

在这种方法中,TLS 将在各个服务器上终止 - 代理不需要解密实际数据。因此,每个服务器都需要从 Let's Encrypt 获取自己的证书。

然而,这仅有的与 TLSv1.2 纯文本 SNI 兼容 - 但无法轻易与 TLSv1.3 加密 SNI 兼容。

相关内容