路由器将自己的 SSL 证书而不是我的域的证书提供给 LAN 主机
Router delivering its own SSL certificates instead of my domain's to LAN hosts
我在我的 NAS 上的一个 docker 容器中安装了 nextcloud 服务,并且可以通过 FQDN 从 Internet 访问该服务,我为其生成了通配符 Letsencrypt 证书。
反向代理 (Traefik) 正在向服务发送请求并处理 http/https.
在我的 LAN 之外一切正常,但从本地网络连接到 nextcloud 时出现证书错误。
例如,尝试从 Firefox 打开 nextcloud 主页会得到:
nextcloud.yourdomain.com uses an invalid security certificate.
The certificate is not trusted because it is self-signed.
Error code: MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT
View Certificate
点击“查看证书”,实际显示的是路由器自己的证书。
作为附加信息,我的 nextcloud 服务 FQDN 已正确解析为路由器的 public IP 地址,即使是在 LAN 中,即
ping nextcloud.yourdomain.com
正确 returns 我路由器的 public IP 地址。
我怎样才能避免这种情况?为什么路由器使用自己的证书将 https 流量发送到我的 LAN 内的主机而不是我的域的 Letsencrypt 证书,就像在 LAN 外发生的一样?
显然不能怪反向代理或 NAS,因为 https 请求甚至没有到达它们。
你能帮我解决一些额外的问题吗?
谢谢
圆周率
您使用的外部IP地址实际上是您路由器的IP地址。对于来自外部(即互联网)的流量,有一个端口转发规则将此流量转发到内部服务器。对于来自内部 的流量,将不会应用此端口转发 - 这就是您的特定路由器的工作方式。并且由于在同一个端口(路由器的管理接口)上实际上有一个服务 运行 并且可以从内部访问它,因此将使用它。
请注意,这就是这个特定路由器的工作原理。不同的路由器可能会将端口转发应用于内部和外部流量。不过在这种情况下它也需要支持 NAT loopback。
解决方法是使用拆分 DNS,即通过 public IP 地址从外部访问 nextcloud,通过内部 IP 地址从内部访问 nextcloud。不知道您现有的系统是否可以完成这样的设置。
我在我的 NAS 上的一个 docker 容器中安装了 nextcloud 服务,并且可以通过 FQDN 从 Internet 访问该服务,我为其生成了通配符 Letsencrypt 证书。 反向代理 (Traefik) 正在向服务发送请求并处理 http/https.
在我的 LAN 之外一切正常,但从本地网络连接到 nextcloud 时出现证书错误。 例如,尝试从 Firefox 打开 nextcloud 主页会得到:
nextcloud.yourdomain.com uses an invalid security certificate.
The certificate is not trusted because it is self-signed.
Error code: MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT
View Certificate
点击“查看证书”,实际显示的是路由器自己的证书。
作为附加信息,我的 nextcloud 服务 FQDN 已正确解析为路由器的 public IP 地址,即使是在 LAN 中,即
ping nextcloud.yourdomain.com
正确 returns 我路由器的 public IP 地址。
我怎样才能避免这种情况?为什么路由器使用自己的证书将 https 流量发送到我的 LAN 内的主机而不是我的域的 Letsencrypt 证书,就像在 LAN 外发生的一样?
显然不能怪反向代理或 NAS,因为 https 请求甚至没有到达它们。
你能帮我解决一些额外的问题吗? 谢谢 圆周率
您使用的外部IP地址实际上是您路由器的IP地址。对于来自外部(即互联网)的流量,有一个端口转发规则将此流量转发到内部服务器。对于来自内部 的流量,将不会应用此端口转发 - 这就是您的特定路由器的工作方式。并且由于在同一个端口(路由器的管理接口)上实际上有一个服务 运行 并且可以从内部访问它,因此将使用它。
请注意,这就是这个特定路由器的工作原理。不同的路由器可能会将端口转发应用于内部和外部流量。不过在这种情况下它也需要支持 NAT loopback。
解决方法是使用拆分 DNS,即通过 public IP 地址从外部访问 nextcloud,通过内部 IP 地址从内部访问 nextcloud。不知道您现有的系统是否可以完成这样的设置。