如何在 Zimbra OSE 中正确配置 SNI?

进入21世纪初,IPv4地址等资源已濒临枯竭。 早在 2011 年,IANA 将其地址空间的最后 8 个 /2017 块分配给了地区互联网注册商,但到了 4 年,他们就已经用完了地址。 解决IPv6地址灾难性短缺问题的答案不仅是IPv4协议的出现,还有SNI技术,它使得在单个IPv4地址上托管大量网站成为可能。 SNI 的本质是这个扩展允许客户端在握手过程中告诉服务器它想要连接的站点的名称。 这允许服务器存储多个证书,这意味着多个域可以在一个 IP 地址上运行。 SNI 技术在商业 SaaS 提供商中特别受欢迎,他们有机会托管几乎无限数量的域,而无需考虑所需的 IPvXNUMX 地址数量。 让我们了解如何在 Zimbra Collaboration Suite 开源版中实现 SNI 支持。

如何在 Zimbra OSE 中正确配置 SNI?

SNI 适用于所有当前和受支持的 Zimbra OSE 版本。 如果您在多服务器基础设施上运行 Zimbra 开源,则需要在安装了 Zimbra 代理服务器的节点上执行以下所有步骤。 此外,您还需要匹配的证书+密钥对,以及来自您的 CA 的可信证书链,用于您想要在 IPv4 地址上托管的每个域。 请注意,在 Zimbra OSE 中设置 SNI 时,绝大多数错误的原因正是带有证书的不正确文件。 因此,我们建议您在直接安装之前仔细检查所有内容。

首先,为了让SNI正常工作,需要输入命令 zmprov mcf zimbraReverseProxySNIEnabled TRUE 在Zimbra代理节点上,然后使用命令重新启动代理服务 zmproxyctl 重新启动.

我们将从创建域名开始。 例如,我们将采取域名 公司.ru 并且,在创建域后,我们将决定 Zimbra 虚拟主机名和虚拟 IP 地址。 请注意,Zimbra 虚拟主机名必须与用户访问域时必须在浏览器中输入的名称匹配,并且也与证书中指定的名称匹配。 例如,我们以 Zimbra 作为虚拟主机名 mail.company.ru,作为虚拟 IPv4 地址,我们使用该地址 1.2.3.4.

之后,只需输入命令 zmprov md company.ru zimbraVirtualHostName mail.company.ru zimbraVirtualIPAddress 1.2.3.4将 Zimbra 虚拟主机绑定到虚拟 IP 地址。 请注意,如果服务器位于 NAT 或防火墙后面,则必须确保对域的所有请求都发送到与其关联的外部 IP 地址,而不是发送到其在本地网络上的地址。

一切完成后,剩下的就是检查并准备要安装的域证书,然后安装它们。

如果域证书的颁发正确完成,您应该拥有三个包含证书的文件:其中两个是来自您的证书颁发机构的证书链,一个是域的直接证书。 此外,您还必须拥有一个包含用于获取证书的密钥的文件。 创建一个单独的文件夹 /tmp/company.ru 并将所有可用文件以及密钥和证书放置在那里。 最终结果应该是这样的:

ls /tmp/company.ru
company.ru.key
 company.ru.crt
 company.ru.root.crt
 company.ru.intermediate.crt

之后,我们将使用以下命令将证书链合并到一个文件中 cat company.ru.root.crt company.ru.intermediate.crt >> company.ru_ca.crt 并使用命令确保证书的一切都井然有序 /opt/zimbra/bin/zmcertmgr verifycrt 通讯 /tmp/company.ru/company.ru.key /tmp/company.ru/company.ru.crt /tmp/company.ru/company.ru_ca.crt。 证书和密钥验证成功后,您可以开始安装它们。

为了开始安装,我们首先将来自证书颁发机构的域证书和可信链合并到一个文件中。 这也可以使用一个命令来完成,例如 cat company.ru.crt company.ru_ca.crt >> company.ru.bundle。 之后,您需要运行以下命令以将所有证书和密钥写入 LDAP: /opt/zimbra/libexec/zmdomaincertmgr savecrt company.ru company.ru.bundle company.ru.key然后使用命令安装证书 /opt/zimbra/libexec/zmdomaincertmgr 部署crts。 安装后,company.ru 域的证书和密钥将存储在该文件夹中 /opt/zimbra/conf/domaincerts/company.ru

通过使用不同的域名但相同的 IP 地址重复这些步骤,可以在单个 IPv4 地址上托管数百个域。 在这种情况下,您可以毫无问题地使用各个发证中心的证书。 您可以检查在任何浏览器中执行的所有操作的正确性,其中每个虚拟主机名应显示其自己的 SSL 证书。 

对于与 Zextras Suite 相关的所有问题,您可以通过电子邮件联系 Zextras Ekaterina Triandafilidi 的代表 [电子邮件保护]

来源: habr.com

添加评论