Наша компания создает и поддерживает множество сетей WordPress, некоторые из них подходят к 100 веб-сайтам.
Мы разработали wp-cli скрипт с использованием Let's encrypt который генерирует сертификат SAN SSL, содержащий все домены сети WordPress, и мы настраиваем этот сертификат SAN в серверном блоке нашей конфигурации nginx, используя ssl_certificate
чтобы все веб-сайты могли использовать HTTPS.
В настоящее время у нас есть один виртуальный хост nginx для обработки всей сети, и это довольно практично, поэтому нам не нужно создавать новый виртуальный хост каждый раз, когда мы создаем веб-сайт.
Проблема в Let's Encrypt ограничивает сертификаты SAN 100 доменами поэтому скоро мы не сможем охватить все веб-сайты.
В документации nginx указано, что последние версии nginx могут в некоторых случаях принимать несколько записей ssl_certificate, но, похоже, это применимо к сертификатам с разными форматами (RSA, SDA и т. Д.)
Вот мои вопросы:
Мы могли бы создать один виртуальный хост и один сертификат SSL для каждого веб-сайта и указать всем веб-сайтам один и тот же корень документа, но у нас есть сложная настройка nginx (ssl, memcached, перенаправления и т. Д.), И мы хотели бы минимизировать создание веб-сайтов. обрабатывайте как можно больше, так что это будет последнее (и наиболее необходимое) решение.
Спасибо.
Вы не можете использовать более одной записи ssl_certificate для одного виртуального хоста. Это просто не так.
Я бы рекомендовал использовать систему управления конфигурацией для создания доменов - наиболее популярными в настоящее время являются ansible, puppet и chef. Независимо от того, хотите ли вы иметь один виртуальный хост-сервер с 100 именами хостов или только одно, решать вам, но цель автоматизации вещей с помощью CMS заключается в том, что объем ручной работы, необходимой для настройки веб-сайта, сводится к минимуму, независимо от конкретной конфигурации.
Лично я считаю, что использование сертификатов SAN таким образом выглядит немного взломанным и непрофессиональным, когда вы просматриваете сертификат для веб-сайта и видите десятки несвязанных сайтов на одном сертификате.
Не могли бы вы создать файл vhost для каждого сайта (или для <= 100 хостов, если хотите) и просто сохранить всю фактическую конфигурацию (путь / перенаправления / и т. Д.) В качестве включения?
server {
listen xyz;
server_name example.com
example2.com;
ssl_certificate certfile;
ssl_certificate_key keyfile;
include templates/standard-website-config;
}
В основной конфигурации nginx у вас будет что-то вроде приведенного ниже, чтобы включить все файлы конфигурации vhost.
http {
... some_standard_http_config ....
include sites/*;
}