如何使用无限的SSL SAN证书设置WordPressnetworking?

我们公司build立并维护了许多WordPressnetworking,其中一些网站接近100个。

我们使用let的encryption技术开发了一个wp-cli脚本 ,该脚本生成一个包含WordPressnetworking所有域的SAN SSL证书,并且使用ssl_certificate在我们的nginxconfiguration的服务器块中设置了这个SAN证书,以便所有网站都可以使用HTTPS。

目前我们有一个单独的nginx虚拟主机来处理整个networking,这是非常实用的,所以我们不必每次创build一个新的虚拟主机,我们创build一个网站。

问题是让我们encryption限制SAN证书到100个域名,所以我们很快将无法覆盖所有网站。

nginx文档指出,最近版本的nginx在某些情况下可能会接受多个ssl_certificate条目,但这似乎适用于具有不同格式(RSA,SDA等)的证书。

这是我的问题:

  • 如果我将SAN分成100个块,我能在单个nginx虚拟主机中使用多个ssl_certificate条目吗? 我需要升级到nginx 1.11吗? 要不然
  • 有没有一个简单的解决scheme来configuration有限数量的虚拟主机(如果可能的话,不是每个网站一个),并共享具有有限数量的SAN证书的域 – 如果可能的话,只使用一个IP地址/ cname?

我们最终可以在每个网站创build一个虚拟主机和一个SSL证书,并将所有网站指向相同的文档根目录,但是我们有一个复杂的nginx设置(ssl,memcached,redirect等),我们希望尽量减less网站创build尽可能的处理,所以这将是最后的(也是最需要的)工作解决scheme。

谢谢。

每个虚拟主机不能使用多个ssl_certificate条目。 这只是不是如何工作。

我会build议使用configurationpipe理系统来处理域的创build – 目前最stream行的是ansible,puppet和chef。 无论您是select一个虚拟主机服务器还是一个虚拟主机名,都取决于您,但是使用CMS实现自动化的关键在于无论具体的configuration如何,设置网站所需的手动工作量都可以最小化。

我个人发现使用SAN证书这种方式有点冒失和不专业的看,当你查看一个网站的证书,并看到在同一证书上的几十个不相关的网站。

你能不能为每个站点创build一个虚拟主机文件(或者如果你愿意的话每个虚拟主机有100个虚拟主机),并且把所有的实际configuration(path/redirect/ etc)保存为一个包含的文件?

 server { listen xyz; server_name example.com example2.com; ssl_certificate certfile; ssl_certificate_key keyfile; include templates/standard-website-config; } 

在主要的nginx conf中,你只需要像下面那样包含所有的vhostconfiguration文件。

 http { ... some_standard_http_config .... include sites/*; }