Получаем валидные сертификаты SSL от Let's Encrypt для NGINX
RHEL / Ubuntu / Nginx 14-07-2025, 23:58 sobir 8 569 1
Let’s Encrypt — это бесплатный, автоматизированный и открытый Центр Сертификации, созданный некоммерческой организацией Internet Security Research Group (ISRG).
Центр сертификации Let’s Encrypt выдаёт валидные сертификаты SSL сроком действия на 90 дней. Мы также можем автоматизировать процесс продления сертификатов с помощью запланировщика задач cron.
Устанавливаем необходимые пакеты:
Ubuntu / Debian
apt install certbot python3-certbot-nginx python3-certbot-dns-cloudflare -yRHEL
dnf install certbot python3-certbot-nginx python3-certbot-dns-cloudflare -yСоздадим конфигурацию для сайта example.com в NGINX:
vi /etc/nginx/conf.d/example_com.conf
server {
listen 80;
server_name example.com www.example.com;
#return 301 https://$host$request_uri;
root /usr/share/nginx/html;
index index.html;
location / {
deny all;
}
location ^~ /.well-known {
default_type 'text/plain';
allow all;
}
error_log /var/log/nginx/example_com_error.log error;
access_log /var/log/nginx/example_com_access.log;
}Проверяем изменения на наличие ошибок и перечитываем конфиг:
nginx -t
nginx -s reloadПолучить SSL сертификат мы можем несколькими способами:
1. С использованием плагина webroot
certbot certonly -a webroot -w /usr/share/nginx/html --email admin@example.com --agree-tos -d example.com -d www.example.com2. С использованием плагина nginx
certbot certonly --nginx -d example.com -d www.example.com3. С использованием плагина dns-cloudflare, если ваш домен делегирован на сервера Cloudflare
mkdir /root/.secrets
echo 'dns_cloudflare_email = "admin@example.com"' > /root/.secrets/cloudflare.ini
echo 'dns_cloudflare_api_key = "put_your_api_key"' >> /root/.secrets/cloudflare.ini
chmod -R 700 /root/.secrets
certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /root/.secrets/cloudflare.ini \
--dns-cloudflare-propagation-seconds 60 \
-d example.com -d www.example.comПодсказка:
Также мы можем использовать токен dns_cloudflare_api_token вместо dns_cloudflare_email и dns_cloudflare_api_key:
echo 'dns_cloudflare_api_token = "put_your_token"' > /root/.secrets/cloudflare.iniПроверяем наличие сертификата в директории:
ls -l /etc/letsencrypt/live/Запланируем автоматическое продление сертификатов раз в месяц:
crontab -e
0 0 1 * * certbot renewНастраиваем обратный прокси сервер NGINX с SSL-терминацией и генерируем бесплатные валидные сертификаты SSL...
ПодробнееПоднимаем сервер SSL VPN OpenConnect для удаленного доступа пользователям....
ПодробнееРазрешаем веб трафик на сервер NGINX только с серверов Cloudflare....
ПодробнееПолучаем реальные IP-адреса клиентов за Cloudflare в лог-файлах nginx access log....
ПодробнееНовые комментарии
Цитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные
Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные статьи что находил
Цитата: FidoNet Цитата: sobir Цитата: FidoNet Можт быть дело в
Цитата: sobir Цитата: FidoNet Можт быть дело в dnsmasq.service? Ошибка Failed
Цитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные
Можт быть дело в dnsmasq.service? Ошибка Failed to set DNS configuration: Unit
Какой дистрибутив Linux вы часто используете?
Календарь
| « Ноябрь 2025 » | ||||||
|---|---|---|---|---|---|---|
| Пн | Вт | Ср | Чт | Пт | Сб | Вс |
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |







