Discord

DISCORD Сервер сообщества

Простейший способ ежедневного общения.

Семейство Unix-подобных операционных систем на базе ядра Linux, включающих тот или иной набор утилит, программ проекта GNU и другие компоненты.
#56
Введение

Let’s Encrypt — центр сертификации, предоставляющий бесплатные криптографические сертификаты X.509 для шифрования передаваемых через интернет данных HTTPS и других протоколах, используемых серверами в Интернете.


Этап 1 - Установка Nginx и CertBot

Установите пакет certbot из репозитория Debian:
Код: Выделить всё
apt update && apt install nginx certbot python3-cloudflare python3-certbot-dns-cloudflare -y


Этап 2 - Конфигурация Nginx

Используйте текстовый редактор для создания файла в каталоге /etc/nginx/conf.d с именем example.com.conf:
Код: Выделить всё
nano /etc/nginx/conf.d/www.example.com.conf

Укажите свое доменное имя с помощью директивы server_name:
Код: Выделить всё
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    server_name example.com www.example.com;
}

Сохраните файл, затем запустите команду, чтобы проверить синтаксис вашей конфигурации и перезапустить NGINX:
Код: Выделить всё
nginx -t && nginx -s reload


Этап 3 - Конфигурация Certbot

Большинство ресурсов взаимодействуют с CloudFlare. Чтобы Certbot мог автоматически обновлять сертификат, ему нужен логин и api-ключ. Войдите в аккаунт Cloudflare и перейдите на страницу Profile в раздел API Tokens. Нажмите View в строке Global API Key и скопируйте этот ключ. Его нужно использовать на следующем этапе.

Создайте файл конфигурации, чтобы Certbot мог автоматически обновлять сертификат при взаимодействии с CloudFlare:
Код: Выделить всё
nano /etc/letsencrypt/cloudflareapi.cfg

Внесите изменения используя электронную почту и api-ключ:
Код: Выделить всё
dns_cloudflare_email = your_cloudflare_login
dns_cloudflare_api_key = your_cloudflare_api_key

С помощью ключа API Cloudflare вы можете делать из командной строки те же действия, что и из пользовательского интерфейса Cloudflare, поэтому, чтобы защитить свою учетную запись, сделайте файл конфигурации доступным для чтения только его владельцу, чтобы никто другой не мог получить ваш ключ:
Код: Выделить всё
chmod 600 /etc/letsencrypt/cloudflareapi.cfg


Этап 4 - Получение сертификата

Чтобы получить сертификат, нужно использовать команду Certbot и указать необходимый плагин, файл учетных данных и сервер, который можно использовать для обработки запроса. Выполните следующую команду для получения wildcard-сертификата, изменив example.com на требуемый домен:
Код: Выделить всё
certbot certonly --cert-name example.com --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflareapi.cfg --server https://acme-v02.api.letsencrypt.org/directory -d "example.com" -d *.example.com

Используйте команду ls, чтобы просмотреть содержимое каталога, в котором хранятся ваши ключи и сертификаты:
Код: Выделить всё
ls /etc/letsencrypt/live/example.com


Этап 5 - Обновление сертификата

Let's Encrypt выдает краткосрочные сертификаты, действительные в течение 90 дней. Нам нужно будет настроить cron для проверки истекающих сертификатов и их автоматического обновления. Используйте следующую команду, чтобы открыть файл crontab для редактирования:
Код: Выделить всё
crontab -e

Выполните редактирование и сохранение:
Код: Выделить всё
@midnight certbot renew --noninteractive

После обновления сертификатов вам необходимо перезагрузить веб-сервер Nginx. Команда renew включает в себя перехваты для запуска команд или скриптов до или после возобновления сертификата. Внесите изменения в файл конфигурации:
Код: Выделить всё
nano /etc/letsencrypt/renewal/example.com.conf

Добавьте следующую строку в раздел [renewalparams]:
Код: Выделить всё
renew_hook = systemctl reload nginx

Не упустите самое интересное!