Ставим из портов:
cd /usr/ports/security/dehydrated/ make install clean && rehash
NGINX
Создаем /usr/local/etc/nginx/letsencrypt.conf
# Let's Encrypt challenge location
location ^~ /.well-known/acme-challenge {
alias /usr/home/www/letsencrypt;
allow all;
default_type "text/plain";
}
В конфиги vhost-ов nginx'а добавляем:
include /usr/local/etc/nginx/letsencrypt.conf;
Настройка dehydrated и полчение сертификатов:
Копируем /usr/local/etc/dehydrated/config.example в config и редактируем его. Нам понадолилось изменить следующее:
|
IP_VERSION=4
KEYSIZE="2048"
CONTACT_EMAIL=admin@bla-bla.com
|
Где: — IP_VERSION — работаем по ipv4; — KEYSIZE — размер ключа. По умолчанию тут значение 4096, но мы считаем, что без особой надобности увелчивать время загрузки страниц, дополнительно греть процессора как на строне сервера так и на строне клиента — смысла нет. Тем более, что сертификат A+ можно получить и на 2048; — CONTACT_EMAIL — сюда нам буду приходит уведомления о скором истечении срока действия сертификатов и другая инйормация от Letsencrypt.
Создаем и редактируем файл /usr/local/etc/dehydrated/domains.txt:
|
bla-bla.com www.bla-bla.com
example.net www.example.net wiki.example.net
|
Это значит, что будут запрошены два сертификата, каждый для своего списка доменов.
Регистрируем наш акаунт:
|
dehydrated --register --accept-terms
|
Дальше, хорошо бы проверить, не ошиблись ли мы где в настройках? Для этого: — добавляем в /usr/local/etc/dehydrated/config строку:
— и вперед:
Если есть ошибки, исправляем их, повторяем запрос. Поле успешного прохождения проверок, в /usr/local/etc/dehydrated/config ремим строку:
Удаляем тестовые сертификаты и все остальное в папке /usr/local/etc/dehydrated/certs И точно так же выполняем запрос на получение «боевых» сертификатов:
dehydrated -c
Настройка nginx:
server {
listen 80;
server_name bla-bla.com www.bla-bla.com;
location /.well-known/acme-challenge/ {
alias /usr/local/www/dehydrated/;
}
location / {
}
}
server {
listen 443 ssl;
server_name bla-bla.com;
ssl_certificate /usr/local/etc/dehydrated/certs/bla-bla.com/fullchain.pem;
ssl_certificate_key /usr/local/etc/dehydrated/certs/bla-bla.com/privkey.pem;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
...
...
}
Проверка корректности настроек.
Для этого используем: Проверка корректности цепочки сертификатов, SSL Checker SSL Server Test от SSL Labs
Настройка обновления сертификатов.
Не мудрствуя лукаво, настраиваем выполнение запроса на обновления сертификатов, например, раз в неделю: crontab
|
32 4 * * 0 root /usr/local/bin/dehydrated -c && service nginx reload
|
Вроде, все. Всем сертификатов не ниже A+.
|