Получаем валидные сертификаты SSL от Let's Encrypt для NGINX

RHEL / Ubuntu / Nginx 5-08-2024, 18:35 sobir 6 440 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 -y

RHEL
dnf install certbot python3-certbot-nginx python3-certbot-dns-cloudflare -y

Создадим конфигурацию для сайта newsite.com в NGINX:
vi /etc/nginx/conf.d/newsite_com.conf
server {
    listen       80;
    server_name  newsite.com www.newsite.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/newsite_com_error.log error;
    access_log  /var/log/nginx/newsite_com_access.log;
}

Проверяем изменения на наличие ошибок и перечитываем конфиг:
nginx -t
nginx -s reload

Получить SSL сертификат мы можем несколькими способами:

1. С использованием плагина webroot

certbot certonly -a webroot -w /usr/share/nginx/html --email [email protected] --agree-tos -d newsite.com -d www.newsite.com

2. С использованием плагина nginx

certbot certonly --nginx -d newsite.com -d www.newsite.com

3. С использованием плагина dns-cloudflare, если ваш домен делегирован на сервера Cloudflare

mkdir /root/.secrets
echo 'dns_cloudflare_email = "[email protected]"' > /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 newsite.com -d www.newsite.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/

Создадим скрипт для автоматического продления сертификатов:
vi /root/le-renew.sh

#!/bin/bash
certbot renew

Запланируем запуск скрипта на каждый месяц:
crontab -e
0 0 1 * * /root/le-renew.sh

Делаем скрипт исполняемым:
chmod u+x /root/le-renew.sh
Похожие новости
Настройка обратного прокси сервера NGINX с SSL-терминацией в CentOS 8 / RHEL 8

Настраиваем обратный прокси сервер NGINX с SSL-терминацией и генерируем бесплатные валидные сертификаты SSL...

Подробнее
Настраиваем GitLab Container Registry

Выполняем настройку GitLab Container Registry....

Подробнее
Поднимаем SSL VPN OpenConnect с Let's Encrypt в Ubuntu 20.04

Поднимаем сервер SSL VPN OpenConnect для удаленного доступа пользователям....

Подробнее
Запрещаем веб трафик на origins, кроме Cloudflare IPs

Разрешаем веб трафик на сервер NGINX только с серверов Cloudflare....

Подробнее
Получаем реальные IP-адреса клиентов за Cloudflare в логах NGINX

Получаем реальные IP-адреса клиентов за Cloudflare в лог-файлах nginx access log....

Подробнее
Разворачиваем NGINX в Docker

Создание кастомного образа nginx из Dockerfile....

Подробнее
Комментарии (1)
  1. sobir
    sobir 17 октября 2021 11:40
    Принудительное обновление сертификата:

    certbot certonly --force-renew -d newsite.com
Новые комментарии
sobir8 ноября 2024 12:42

Цитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные

img
К комментарию
FidoNet7 ноября 2024 03:26

Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные статьи что находил

img
К комментарию
sobir27 октября 2024 19:02

Цитата: FidoNet Цитата: sobir Цитата: FidoNet Можт быть дело в

img
К комментарию
FidoNet25 октября 2024 22:04

Цитата: sobir Цитата: FidoNet Можт быть дело в dnsmasq.service? Ошибка Failed

img
К комментарию
sobir25 октября 2024 16:48

Цитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные

img
К комментарию
FidoNet20 октября 2024 12:12

Можт быть дело в dnsmasq.service? Ошибка Failed to set DNS configuration: Unit

img
К комментарию
Все комментарии
Какой дистрибутив Linux вы часто используете?
Календарь
«    Декабрь 2024    »
ПнВтСрЧтПтСбВс
 1
2345678
9101112131415
16171819202122
23242526272829
3031 
Подпишись на канал