У меня есть веб-сервер apache, который использует certbot для SSL-сертификата Let's Encrypt. Возможно ли иметь несколько отдельных сертификатов для каждого управляемого виртуального хоста? В настоящее время certbot работает только с одним сертификатом с множеством альтернативных имен.
У меня есть это требование не публиковать для всех клиентов (в деталях сертификата браузера) список доменов моего веб-сервера.
Со стороны Certbot проблем нет. Просто запросите сертификат для каждого домена, и Certbot обновит их автоматически.
Поскольку Apache 2.4 поддерживает Индикация имени сервера, и с этой стороны проблем нет. Вам просто нужно настроить разные сертификаты для каждого виртуального хоста:
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
<VirtualHost *:443>
ServerName example.net
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.net/privkey.pem
</VirtualHost>
Редактировать: Если вы не хотите, чтобы certbot искажал вашу конфигурацию Apache, используйте webroot плагин. Создайте каталог для certbot:
mkdir -p /var/www/certbot/.well-known/acme-challenge
Добавьте псевдоним ко всем своим <VirtualHost>
работает через порт 80 или глобально:
Alias "/.well-known/acme-challenge/" "/var/www/certbot/.well-known/acme-challenge/""
Запустите cerbot с помощью webroot плагин:
certbot certonly --webroot -w /var/www/certbot -d example.com -d www.example.com
Certbot запомнит эти настройки при обновлении сертификатов.
Если у вас настроены виртуальные серверы, при запуске certbot --apache
он спросит, для какого домена вы хотите получить сертификат.