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

Как использовать Let's Encrypt с динамически настраиваемым массовым виртуальным хостингом

У меня есть сервер, настроенный на использование динамически настраиваемых хостов Apach 2.4. У меня настроен SSL для некоторых доменов, но меня просят использовать бесплатную службу Let's Encrypt для предоставления SSL для всех доменов.

Certbot было немного непонятно для меня, поскольку я не уверен, будет ли он работать для динамических хостов.

Моя задача заключается в том, что у меня есть каждый домен, доступный в субдомене subXXX.masterdomain.com и псевдониме yourchoicedomain.com, поэтому мне нужно создать форму сертификата Let's Encrypt, которая действительна для

У меня нет очень сложного файла конфигурации vhosts. Я получаю псевдоним домена и псевдоним сервера www с помощью символических ссылок.

<VirtualHost *:80>
    #ServerName masterdomain.me
    #ServerAlias *
    # get the server name from the Host: header
    UseCanonicalName Off
    # include the server name in the filenames used to satisfy requests
    VirtualDocumentRoot "/var/www/vhosts/%0/httpdocs"

    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTPS} off
    RewriteRule .* http://www.%{HTTP_HOST}$0 [R=301,L]

    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTPS} on
    RewriteRule .* https://www.%{HTTP_HOST}$0 [R=301,L]

    <Directory "/var/www/vhosts/*/httpdocs">
        AllowOverride "All"
        Options SymLinksIfOwnerMatch
        Require all granted
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Любая помощь в начале работы будет отличной.

Поскольку certbot не может определить активные доменные имена из вашей конфигурации Apache, вам необходимо обойти это.

Поскольку с mod vhost alias наличие подкаталога - это то, что «активирует» доменное имя. Я бы предложил простые сценарии оболочки, которые перечисляют все подкаталоги (= все активные домены), а затем запускают certbot с --webroot возможность создать что-то вроде:

certbot certonly --webroot -w var/www/vhosts/www.example.com/httpdocs -d www.example.com -d example.com -w var/www/vhosts/www.example.net/httpdocs -d www.example.net -d other.example.net

Certbot требует имя каталога, а также имя домена. Вы можете добавить до 100 в соответствии с их документацией и пока не поддерживает подстановочные знаки.

Вам просто нужно добавить конфигурации, связанные с SSL, в псевдоним vhost (один файл конфигурации), но вы можете использовать один и тот же сертификат для всех ваших доменов, упомянутых в vhost.

У меня все еще может работать один файл конфигурации. Пробные и проверенные.