Apache – 虚拟主机大量客户端可configurationSSL,反向代理

我的情况是,我们为客户端托pipe多个网站,并且所有客户端站点都只在SSL上运行。

目前,我们为Apache的每个客户端都有一个单独的虚拟主机文件。 除了服务器名称/别名和sslconfiguration部分,每个文件几乎都是相同的。 其余的configuration几乎只是一些反向代理声明,告诉apache终止ssl,然后将stream量传递给后端IIS(.net站点)。 注意:所有网站运行在同一个IP上,因此SNI被使用,似乎运作良好(没有compliants,这是很好的)。

我们拥有的另一个主要function是客户能够login他们的“客户门户”(我们的网站)并生成一个CSR到第三方获得签名并将证书交还给我们。 当他们生成CSR时,我们将私钥保存在服务器上。

问题是:

1)为每个客户端分配一个虚拟主机文件很难维护,因为它们之间的大部分文件是相同的。 (文件描述符限制也成为一个问题)

2)客户可以随时更改他们的ssl。 即他们可能只剩下2个月的证书,因此想login到他们的帐户,并获得新的企业社会责任,并在2个月内更改他们的SSL证书。 问题出现,我需要做一个“重新启动”在Apache重新加载证书。 记住所有的网站运行在同一个networking服务器,所以重新启动会影响到他们。

因此:

1)我正在考虑转移到Apache的“dynamicconfiguration大量虚拟主机”,但是,根据这个网站在这里 ,说明如下:

除非所有dynamic托pipe的域名都是通配子域名SSL证书覆盖的子域名,否则服务器上不能使用SSL终止

但是每个站点都是自己的域名,而不仅仅是子域名。

有没有办法在Apache中使用dynamicssl用法来实现这个群集托pipe。 如果没有(我认为是这种情况),我可以把'infront'的Apache终止ssl连接,不需要重新启动? (它需要有一些方法来更改证书,但不会影响运行在同一个IP / Web服务器上的其他站点)

即(HAProxy / Pound /其他??) – > Apache – > IIS

我会把希捷TLS代理放在apache之前 – https://hitch-tls.org/

从function列表中:

  • 大型安装的安全性:高达15000个监听sockets和50万个证书。
  • 支持无缝运行时configuration重新加载证书和监听端点。

除非您的用户创buildCSR并selectCA自身非常重要,否则请考虑启用Let's Encrypt和Acmetool。 通过一个脚本分别添加和删除域名,您将获得自动颁发和自动更新所有域的免费证书。 设置和忘记=赢:赢。

参见: https : //info.varnish-software.com/blog/five-steps-to-secure-varnish-with-hitch-and-lets-encrypt