如何在 Apache 上配置多租户 web 应用程序,我需要分别添加每个客户域证书?

如何在 Apache 上配置多租户 web 应用程序,我需要分别添加每个客户域证书?

在我们的服务器 (Apache/Ubuntu18) 上,我们有一个正在运行的 Web 应用,它是一个多租户 Web 应用。因此,对于每个新客户端,都会有一个新的租户设置,并且它会创建一个新的子域。所以:

Web 应用程序/Vhost:domain.com

客户 A:A.domain.com(但想通过自己公司的网址访问应用程序。所以 A.nike.com) 客户 B:B.domain.com(但想通过自己公司的网址访问应用程序。所以 A.adidas.com)

等等等等。

因为他们想要使用自己的公司 URL,所以我们为我们的 Web 应用设置了通配符 SSL 证书,每次需要将公司添加到此列表时,我们都需要运行 Certbot 来将域名添加到列表中并进行验证。但这真的很麻烦,因为这样每次我们需要续订证书时都需要要求客户添加 TXT 记录。

是否可以为每个公司网址单独创建 SSL 证书,并配置应用程序/虚拟主机来处理这些证书?因此不再使用通配符 SSL,而是为每个公司创建一个 SSL 证书

答案1

无论如何,他们都需要将他们的A.nike.comA.adidas.com指向您的服务器才能使用他们自己的域名。因此 HTTP-01 和 ALPN-01 质询都可用于检查这些名称。

问题是,您想使用通配符证书,但它需要 DNS-01 质询。在单个虚拟主机中不可能指定多个证书(相同算法)。

为了解决这个问题,您可以像以前一样管理通配符虚拟主机,并使用 DNS-01 质询作为其证书。不要在该虚拟主机中添加任何外部主机名。

然后,创建一个具有相同设置的附加虚拟主机,但适用于所有外部主机名(例如A.nike.com)。它将使用另一个证书,您将使用 HTTP-01 或 ALPN-01 质询来维护该证书,这已经足够了,因为其证书中没有通配符,并且它们的 DNS 已经指向您的服务器。

相关内容