我们公司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等)的证书。
这是我的问题:
我们最终可以在每个网站创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/*; }