Один из способов получить бесплатные SSL/TLS сертификаты от Let's Encrypt.
Устанавливать и настраивать будем на примере Debian Bullseye.
Обновляем список пакетов и устанавливаем:
# apt update
- letsencrypt и certbot это один и тот же пакет;
# apt install letsencrypt
Останавливаем Nginx:
# /etc/init.d/nginx stop
Получаем сертификаты:
Для возможности получить сертефикаты, необходимо, чтобы был открыт TCP 80 порт.
# letsencrypt certonly --email <email> -d <domain> --must-staple --staple-ocsp
How would you like to authenticate with the ACME CA?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)
- Выбираем 1
Удостоверимся что они получены:
# ls /etc/letsencrypt/live/<domain>/
cert.pem chain.pem fullchain.pem privkey.pem
+ Генерируем ключ Диффи-Хеллмана:
# openssl dhparam -out /etc/ssl/nginx/dhparam.pem 2048
Прописываем их:
# nano /etc/nginx/sites-available/site.ru
ssl_certificate /etc/letsencrypt/live/site.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/site.ru/chain.pem; # Если включён ssl_stapling;
ssl_dhparam /etc/ssl/nginx/dhparam.pem;
Запускаем Nginx:
# /etc/init.d/nginx start
Обновление сертификата:
- Останавливаем демон Nginx,
# /etc/init.d/nginx stop
- Проверка,
# letsencrypt renew --dry-run | certbot renew --dry-run
- Обновление,
# letsencrypt renew | certbot renew
- Запускаем демон Nginx,
# /etc/init.d/nginx start
Revoking/Removal certificates: [link]
# man letsencrypt
# certbot revoke --cert-name ${YOUR_DOMAIN}
--- Or:
# certbot revoke --cert-path /etc/letsencrypt/archive/<domain>/cert1.pem
# certbot revoke --cert-path /etc/letsencrypt/live/<domain>/cert1.pem
--- Удаление сертификата:
# certbot delete --cert-name <domain>
Полезные источники:
| LinuxBabe.Com | Хабрахабр | Nginx | Certbot |