Настройка такая. У меня есть домен, например, 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


