Давайте зашифруем с динамическими поддоменами

Давайте зашифруем с динамическими поддоменами

Настройка такая. У меня есть домен, например, example.com я настроил Apache2 с VirtualDocumentRoot, таким образом я могу указать поддомен на определенную папку простым способом:

Файл sites-available/websites.conf:

ServerName example.com
ServerAlias *.example.com
VirtualDocumentRoot /var/www/websites/%1/

<Directory /var/www/websites/%1/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Поэтому, когда вы заходите, test.example.comон ищет testпапку в каталоге веб-сайтов и обслуживает ее.

Это работает так, как и предполагалось, но я хотел использовать Let's Encrypt для SSL. Который пока не может обрабатывать wildcard-сертификаты. Как бы мне решить такую ​​проблему?

Текущая ситуация:

Установил сертификаты Let's Encrypt с помощью:sudo certbot --apache -d example.com -d admin.example.com -d www.example.com

Файл: sites-available/000-default.conf:

DocumentRoot /var/www/websites/current/

<Directory /var/www/websites/current/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<IfModule mod_dir.c>
    DirectoryIndex index.php index.pl index.cgi index.html index.xhtml index.htm
</IfModule>

# Let's Encrypt Redirect
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Все поддомены по-прежнему перенаправляются на https. Только topdomain example.com, admin.example.comи www.example.comдолжно быть https.

решение1

Проблема в том, что вы не конкретизировали ни одну из конфигураций каким-либо образом, специфичным для сайта.

Важно отметить, что отдельные файлы конфигурации "на сайт" на самом деле не являются функцией Apache httpd. Это просто (относительно распространенное) соглашение для удобства администрирования, которое в конечном итоге использует директиву Includeв главном файле конфигурации для объединения всего в одну конфигурацию при загрузке конфигурации.

Обычно эти отдельные файлы конфигурации содержат все свое содержимое внутри, VirtualHostчтобы ограничить их действие, но у вас, похоже, есть только глобальная конфигурация, включая перенаправления с http на https.

решение2

Попытка создать сертификаты с сервера

certbot certonly -d *.example.com -d admin.example.com -d www.example.com
Wildcard domains are not supported: *.example.com

Связанный контент