Мой сценарий заключается в том, что мы размещаем несколько веб-сайтов для клиентов, и все сайты клиентов работают только на SSL.
В настоящее время у нас есть отдельный файл виртуального хоста для каждого клиента Apache. Каждый файл почти одинаков, за исключением имени / псевдонима сервера и части конфигурации ssl. Остальная часть конфигурации - это в значительной степени просто некоторые объявления обратного прокси, чтобы сообщить apache завершить работу ssl и затем передать трафик на серверный IIS (сайт .net). Примечание: все сайты работают на одном IP, поэтому используется SNI и, похоже, работает хорошо (пока нет соответствия, что хорошо).
Другая основная функция, которая у нас есть, заключается в том, что клиент может войти на свой «клиентский портал» (наш веб-сайт) и сгенерировать CSR, чтобы передать его третьей стороне, чтобы подписать его и вернуть нам сертификат. Когда они генерируют CSR, мы храним закрытые ключи на сервере.
Проблема в том, что:
1) Наличие отдельного файла виртуального хоста для каждого клиента сложно поддерживать, учитывая, что большая часть файла у них одинакова. (Также ограничения файловых дескрипторов становятся проблемой)
2) Клиент может изменить свой ssl в любое время. Т.е. у них может остаться всего 2 месяца на сертификате, и, следовательно, они захотят войти в свою учетную запись и получить новый CSR и изменить свой ssl-сертификат через 2 месяца. Возникает проблема, что мне нужно выполнить «перезапуск» apache, чтобы перезагрузить сертификаты. Помните, что все сайты работают через один и тот же веб-сервер, поэтому его перезапуск повлияет на всех.
Следовательно:
1) Я рассматриваю возможность перехода на «динамически настраиваемый массовый виртуальный хостинг» для Apache, однако, согласно этому сайту Вот, говорится следующее:
"Прекращение действия SSL невозможно на сервере, если все динамически размещенные домены не являются субдоменами, на которые распространяется SSL-сертификат субдомена с подстановочными знаками"
Однако каждый сайт является собственным доменом, а не только поддоменами.
Есть ли способ добиться этого массового хостинга с использованием динамического ssl в Apache. Если нет (что, как мне кажется, так), что я могу поставить «перед» apache, чтобы разорвать соединение SSL, которое не требует перезапуска? (У него должен быть способ изменить сертификат, но не влиять на другие сайты, работающие на том же IP / веб-сервере)
Т.е. (HAProxy / Pound / другой ??) -> Apache -> IIS
Я бы поставил прокси Hitch TLS перед apache - https://hitch-tls.org/.
Из списка функций:
Если для ваших пользователей не очень важно создавать CSR и выбирать CA самостоятельно, рассмотрите возможность включения заминки с Let's Encrypt и Acmetool. С помощью небольшого скрипта для добавления и удаления доменов соответственно вы получите бесплатные сертификаты для всех доменов с автоматической выдачей и автоматическим продлением. Установить и забыть = Win: Win.
Видеть: https://info.varnish-software.com/blog/five-steps-to-secure-varnish-with-hitch-and-lets-encrypt