我的方案是我们为客户托管多个网站,并且所有客户网站仅在 SSL 上运行。
目前,我们为 Apache 的每个客户端都有一个单独的虚拟主机文件。除了服务器名称/别名和 ssl 配置部分之外,每个文件几乎相同。其余的配置几乎只是一些反向代理声明,告诉 apache 终止 ssl,然后将流量传递到后端 IIS(.net 站点)。注意:所有站点都在同一个 IP 上运行,因此使用了 SNI 并且似乎运行良好(目前尚无合规性,这很好)。
我们拥有的另一个主要功能是客户能够登录他们的“客户门户”(我们的网站)并生成一个 CSR 以发送给第三方以使其签名并将证书返回给我们。当他们生成 CSR 时,我们将私钥保存在服务器上。
问题在于:
1)考虑到大多数文件在它们之间是相同的,很难为每个客户端维护一个单独的虚拟主机文件。(文件描述符限制也成为一个问题)
2) 客户端可以随时更改其 ssl。即他们可能只剩下 2 个月的证书,因此想要登录到他们的帐户并获得一个新的 CSR 并在 2 个月内更改他们的 ssl 证书。问题出现了,我需要在 apache 上“重新启动”以重新加载证书。请记住,所有站点都通过同一个 Web 服务器运行,因此重新启动它会影响所有站点。
所以:
1)我正在考虑转移到为Apache的“动态配置的大规模虚拟主机”,然而,根据该网站在这里,下面的陈述:
“除非所有动态托管的域都是通配符子域 SSL 证书涵盖的子域,否则服务器上无法终止 SSL ”
然而,每个站点都是它自己的域,而不仅仅是子域。
有没有办法在 Apache 中使用动态 ssl 来实现这种大规模托管。如果不是(我认为是这种情况),我可以在 apache 的“前面”放置什么来终止不需要重新启动的 ssl 连接?(它需要有一些方法来更改证书但不影响在同一 IP/Web 服务器上运行的其他站点)
即(HAProxy/Pound/other??) --> Apache --> IIS
小智 1
我会将 Hitch TLS 代理放在 apache 前面 - https://hitch-tls.org/。
从功能列表来看:
除非您的用户自己创建 CSR 并选择 CA 非常重要,否则请考虑启用 Let's Encrypt 和 Acmetool 的连接。通过分别添加和删除域的一些脚本,您将获得所有域的免费证书,并自动颁发和自动续订。设置并忘记=赢:赢。
请参阅:https ://info.varnish-software.com/blog/ Five-steps-to-secure-varnish-with-hitch-and-lets-encrypt
| 归档时间: |
|
| 查看次数: |
603 次 |
| 最近记录: |