Назад | Перейти на главную страницу

Как я могу настроить сеть WordPress с неограниченным сертификатом SSL SAN?

Наша компания создает и поддерживает множество сетей 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/*;
}