• %user%
logotype
SysOps
  • Главная
  • Новости
  • О проекте
  • Контакты
  • Статистика
  • Сервисы
    • My IP Address
    • IP Calculator
    • WHOIS Client
    • Speedtest
    • Crontab
    • NGINXConfig
    • Composerize

  • RHEL
  • Ubuntu
  • TCP/IP
  • DNS
  • Containers
  • Cloud
  • Ansible
  • NGINX
  • LAMP
  • LEMP
  • SQL
  • Zabbix
  • Netfilter
  • MikroTik

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


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 adm@newsite.com --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 = "adm@newsite.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 newsite.com -d www.newsite.com

Проверяем наличие сертификата в директории:
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

Новость отредактировал: sobir - 9-03-2023, 11:26
Причина: Информация обновлена

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

    certbot certonly --force-renew -d newsite.com

sobir

Автор

9-03-2023, 11:19

Дата публикации

RHEL / Ubuntu / Nginx

Категория
  • Комментариев: 1
  • Просмотров: 1 030
RHEL / Nginx
Настройка обратного прокси сервера NGINX с SSL-терминацией в CentOS 8 / RHEL 8
Containers
Настраиваем GitLab Container Registry
Ubuntu
Поднимаем SSL VPN OpenConnect с Let's Encrypt в Ubuntu 20.04
Cloud / Nginx
Запрещаем веб трафик на origins, кроме Cloudflare IPs
Cloud
Получаем реальные IP-адреса клиентов за Cloudflare в логах NGINX
Containers
Разворачиваем NGINX в Docker
Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Комментарии

Салом, можно ещё создать файл в /etc/nginx/proxy_params, a потом добавить туда следующие строки: 

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

после просто подключить в конфиге nginx: 

proxy_pass https://your_backend;

include proxy_params;

на Ubuntu такой файл уже существует можно просто подключить 

8 сентября 2022 18:23

komronu

Можно ещё так:

1. Создаем отдельную сеть для наших контейнеров

docker network create zbx-net

2. Указываем сеть по умолчанию в docker-compose.yml

networks:
  default:
    name: zbx-net
    external: true

26 августа 2022 10:43

sobir

Спасибо за отзыв, написал отдельную статью по установке и настройке Ansible

22 августа 2022 15:12

komronu

Думаю в статье необходимо также описать процесс установки Ansible.
19 августа 2022 18:00

sobir

Принудительное обновление сертификата:

certbot certonly --force-renew -d newsite.com
17 октября 2021 11:40

sobir

Какой дистрибутив Linux вы часто используете?
Подпишись на канал
Выбрать дизайн сайта
1 посетитель на сайте. Из них:
Гости1
© 2020 SysOps Яндекс.Метрика

Авторизация

Регистрация Забыли пароль?