![Apache 2.4 在拥有大量证书的情况下扩展能力如何?](https://linux22.com/image/693523/Apache%202.4%20%E5%9C%A8%E6%8B%A5%E6%9C%89%E5%A4%A7%E9%87%8F%E8%AF%81%E4%B9%A6%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E6%89%A9%E5%B1%95%E8%83%BD%E5%8A%9B%E5%A6%82%E4%BD%95%EF%BC%9F.png)
随着简单、免费的 Let's Encrypt 证书的出现,以及 IE8 不再成为问题,我计划在具有数千个主机名的 Apache 服务器上启用 SSL。Apache 可以扩展吗?目前,将 Apache 切换为其他版本不是一个选择。
我的第一次测试表明,service apache restart
实际上使用几千个自创建的证书及其中间件就可以快速提供页面服务。
我应该注意哪些事项?我担心可能的扩展瓶颈只会在实际生产中出现,那时回滚到“不,我们没有这样的证书”的情况就有点晚了。
附言:除了 之外,有没有生成包含<VirtualHost>
...列表的 conf 文件的快捷方式?我正在考虑类似“只查找所有证书”指令。CertificateFile
mod_macro
/etc/letsencrypt/live/
答案1
虽然有限制,但您可以使用多站点证书(具有备用名称的证书)。多个站点可以使用多站点证书。Let's Encrypt 对此提供了很好的支持。
每个使用 SSL 的站点都需要链接到相应的证书。如果所有站点都使用相同的证书,则可以在全局配置中进行配置,而不必针对每个站点单独配置。
如果您在单个 IP 地址上拥有多个证书,则不支持 SNI 的客户端可能会遇到证书名称问题,具体取决于连接到哪个站点。
虽然您可以拥有一个包含您信任的证书的目录,但没有从证书列表中选择证书的机制。我从未见过允许这样做的工具。
您可以编写一个脚本来读取证书支持的站点,并使用该证书的位置更新相应的站点配置。如果您使用包含目录来配置站点,这可能会更简单。(Debian/Ubuntu 使用 sites-enabled 目录来激活在 sites-available 目录中定义的站点。)良好的命名标准会使这更简单,但所需的数据应该在 apache 虚拟主机定义中。