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

Let's Encrypt с динамическими поддоменами

Настройка такая. У меня есть домен, например 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. Который еще не может обрабатывать подстановочные сертификаты. Как бы я справился с такой проблемой?

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

Установлено шифрование сертификатов с помощью: 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. Только топдомен example.com, admin.example.com и www.example.com должно быть https.

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

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

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

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

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