Для Let’s Encrypt написано уже много разных утилит, автоматизирующих процесс получения сертификата. Одна из удобных — dehydrated. О её настройке и пойдёт речь ниже.
В CentOS dehydrated ставится из репозитория EPEL. Далее, нам нужно настроить его:
1. На сервере создаём директорию, необходимую для получения сертификата:
# mkdir -p /var/www/user/supersite.com/.well-known/acme-challenge # chown -R user:user /var/www/user/supersite.com/.well-known
2. В конфигурационном файле dehydrated прописываем созданную директорию и указываем email:
WELLKNOWN="/var/www/user/supersite.com/.well-known/acme-challenge" CONTACT_EMAIL="robot@sysadmin.pm"
3. В файле /etc/dehydrated/domains.txt прописываем наш домен и поддомены на нём:
supersite.com www.supersite.com secure.supersite.com
4. Запускаем утилиту:
# dehydrated -c
В случае успешного завершения операции, сертификат для домена будет доступен в директории /etc/dehydrated/certs/supersite.com/
Администратор имеет возможность выписывать сертификаты для нескольких доменов, но так как WELLKNOWN параметр можно указать только единожды, необходимо донастроить веб-сервер так, что бы запросы к .well-known/acme-challenge направлялись в директорию, указанную в WELLKNOWN.
В Nginx, например, для виртуального хоста можно прописать такой алиас:
location /.well-known/acme-challenge { alias /var/www/certs/.well-known/acme-challenge; }
Для Apache, алиас в виртуальном хосте можно прописать вот так:
Alias /.well-known/acme-challenge/ /var/www/certs/.well-known/acme-challenge/
В зависимости от настроек апача, возможно потребуется дополнительно настроить разрешения:
<Directory "/var/www/certs/.well-known/acme-challenge/"> Options None AllowOverride None ForceType text/plain RedirectMatch 404 "^(?!/\.well-known/acme-challenge/[\w-]{43}$)" </Directory>
Соответственно в WELLKNOWN нужно будет прописать директорию /var/www/certs/.well-known/acme-challenge.
Кроме того, в файл /etc/dehydrated/domains.txt, каждый новый домен необходимо прописывать с новой строки:
supersite.com www.supersite.com secure.supersite.com mydomain.com www.mydomain.com blog.mydomain.com
При выполнении команды dehydrated -c, утилита проверяет наличие сертификата, проверяет срок действия сертификата, и если до его истечения остаётся менее 30 дней, выписывает новый. Для автоматизации процесса, достаточно добавить эту команду в cron.
location /.well-known/acme-challenge {
alias /var/www/certs/.well-known/acme-challenge;
}
———-
ты забыл указать, что это для Nginx, но не для Apache2 и тд и было бы круто, рассмотреть варианты других вебсерверов, не только Nginx или Apache2
хотя сорян, заметил упоминание nginx позжее))
С ходу добавил пока что только Apache 🙂 Остальное добавлю позже, после прогона на тестовом сервере. По памяти для того же Lighttpd уже не напишу.