SSL 证书不匹配,多供应商网站

SSL 证书不匹配,多供应商网站

我在 上托管了一个网站*.mydomain.com,我的 Apache 网络服务器与 PHP 结合将根据提供的子域返回/回显一些纯文本。*.mydomain.com使用通配符 SSL 证书进行保护。

我需要允许用户将请求从他们自己的域重定向到我的域,例如demo.theirdomain.comdemo.mydomain.com

我已经使用 CNAME 记录通过 HTTP 实现了这一点,但是我读到过这并不理想。我需要通过 HTTPS 为我的网站提供服务。当我尝试通过 HTTPS 连接到网站时,https://demo.theirdomain.com我会收到证书不匹配错误。

允许其他子域安全地将其请求重定向到我的域的最佳方法是什么?注意:我不希望用户创建自己的证书。

答案1

不幸的是,在这种情况下,CNAME 不起作用。正如您所说,您的证书仅对其他域有效,*.mydomain.com并且不适用于任何其他域。使用来自demo.theirdomain.com到的CNAMEmydomain.com将导致证书不匹配错误,因为客户端被引导相信它正在连接到,demo.theirdomain.com但服务器(mydomain.com)正在为*.mydomain.com

您需要重新考虑尝试执行此操作的方式。我建议您详细说明您这样做的原因,以便我们避免 XY 问题,但我将继续提供两种可能的解决方案:

  1. 另一个域需要使用重定向,例如 HTTP 302。Web 服务器将位于demo.theirdomain.com并提供 302 的 HTTP 响应以将客户端重定向到mydomain.com。这将允许客户端意识到当前服务器是服务器mydomain.com,并且证书*.mydomain.com对其有效。如果这不是理想的选择,因为您希望demo.theirdomain.com成为唯一可见的域,请尝试 #2。然而,此重定向可能是您的最佳解决方案。
  2. 反向代理可以位于demo.theirdomain.com并提供 的直通/后端mydomain.com。这样做的好处是反向代理将处理证书转换,因为连接终止于demo.mydomain.com,因此那里的证书(希望配置正确)有效。在反向代理处发起到 的新连接,mydomain.com并被视为有效。您说过您不希望用户创建自己的证书,因此此解决方案可能不适合您,特别是因为它还涉及反向代理设置(尽管他们可以配置 DNS 条目以demo.theirdomain.com指向您的反向代理上的 IP)。

您可以为他们的域名提供证书,但这听起来对您来说并不可行。我建议尽可能不要使用通配符证书,因为它们不是好的安全做法。

答案2

如果您的用户想要将其域重定向https://demo.example.net到您的域,https://demo.example.com则只有两种配置可供选择:

  1. 他们运行具有有效证书的 TLS Web 服务器,该服务器将所有内容重定向(使用 HTTP 重定向)到demo.example.com
  2. 您使用有效证书运行VirtualHost命名demo.example.net。在这种情况下,您可以摆脱重定向并直接提供内容。

无论如何,他们都必须获得有效的证书demo.example.com,但如果你使用让我们加密证书。在这种情况下:

  1. 客户只需授权您demo.example.net按照以下方式使用域名Let's Encrypt 服务条款,值得注意的是你必须满足条件:

    您向 ISRG 和广大公众保证,您是该互联网域名的合法注册人,该域名是或将成为您证书的主题,或者您是该注册人的正式授权代理人

  2. 要获得这样的证书,你只需要demo.example.net指向你的地址(已经完成)并使用 ACME 客户端,例如certbot获取和更新证书。

相关内容