Настройка бесплатного TLS/SSL сертификата Let’s Encrypt для Nginx на сервере Debian 8

Данное руководство показывает, как установить бесплатный TLS/SSL сертификат от Let’s Encrypt на сервер с Nginx, работающий под управлением Debian 8.

Инсталляция клиента Let’s Encrypt на сервер с Debian 8

В репозитории Ubuntu 16.04 уже имеется клиент Let’s Encrypt. Он также доступен в репозитории Debian testing. Возможно, кто-то из вас подумает: «Отлично, тогда можно подключить репозиторий jessie-backports для установки Let’s Encrypt на Debian 8!» Признаться, у меня возникла такая же мысль, когда я узнал, что этот клиент включен в репозиторий Debian 9.

Хорошо, откроем файл sources. list с помощью текстового редактора nano.

sudo nano /etc/apt/sources. list

После этого добавьте следующую строку в конец данного файла.

deb http://ftp. debian. org/debian jessie-backports main

Затем обновите локальный пакетный индекс и установите letsencrypt.

sudo apt-get update sudo apt-get install letsencrypt - t jessie-backports

Получение бесплатного сертификата TLS/SSL с использованием плагина Standalone.

При использовании сертификата TLS/SSL от Let’s Encrypt с плагином standalone, клиент letsencrypt временно активирует веб-сервер, который принимает соединения на порту 80. Если ранее был установлен и работает веб-сервер Nginx, его необходимо остановить с помощью следующей команды, чтобы освободить порт 80.

sudo systemctl stop nginx

sudo service nginx stop

После этого введите следующую команду для получения сертификата.

Читайте также:  Как установить Skype на Ubuntu 18.04

sudo letsencrypt certonly —email — d

Подкоманда certonly инструктирует клиента letsencrypt запросить сертификат, но не производить его установку, так как на момент написания клиент letsencrypt не предоставляет автоматическую конфигурацию для Nginx.

Электронный адрес предназначен для получения срочных уведомлений и восстановления забытых ключей. Пожалуйста, укажите свой реальный адрес электронной почты. Опция — d служит для указания вашего домена. Замените её на актуальное доменное имя. Необходимо указать ваше доменное имя, соответствующее IP-адресу вашего сервера на базе Debian 8, иначе проверка домена не пройдет успешно.

Вам будет предложено выбрать способ аутентификации. Пожалуйста, выберите второй вариант и нажмите клавишу Enter.

Debian 8 Let

В течение нескольких секунд вам должно появиться поздравительное сообщение, как указано ниже.

ВАЖНЫЕ ЗАМЕТКИ: - Поздравляем! Ваш сертификат и цепочка успешно сохранены по следующему адресу. /etc/letsencrypt/live/your-domain-name/fullchain. pem. Ваш сертификат истечет 2016-08-21. Чтобы получить новую версию сертификата в будущем, просто запустите Let's Encrypt снова. - Если вам нравится Let's Encrypt, пожалуйста, подумайте о поддержке нашей работы: Пожертвовать ISRG / Let's Encrypt: https://letsencrypt. org/donate Пожертвовать EFF: https://eff. org/donate-le

Ваш сертификат и цепочка сохранены в файле по следующему пути: /etc/letsencrypt/live/your-domain-name/fullchain. pem.

Настройка сертификата TLS/SSL через Nginx.

Если вы еще не установили Nginx, выполните следующую команду.

sudo apt-get install nginx

После этого необходимо создать файл конфигурации для блока сервера.

sudo nano /etc/nginx/conf.d/your-domain-name.conf

Привожу пример настройки TLS/SSL для Nginx.

Читайте также:  Конфигурация сервера тайлов OpenStreetMap (OSM) на Debian 12 Bookworm

server < listen 80; server_name www. yourdomain.comВозвратите 301 на https://www. yourdomain.com$request_uri; > server < listen 443 ssl; server_name www. yourdomain.comssl_protocols TLSv1.1 TLSv1.2; ssl_certificate /etc/letsencrypt/live/www. yourdomain.com/fullchain. pem; ssl_certificate_key /etc/letsencrypt/live/www. yourdomain.com/privkey. pem; журнал_доступа /var/log/nginx/www. yourdomain.com.log; root /var/www/html; >

Сохраните изменения и закройте документ. Затем перезапустите Nginx.

sudo systemctl restart nginx

sudo service nginx restart

Получение сертификата TLS/SSL с использованием плагина Webroot.

Приостановка работы сервера Nginx может негативно сказаться на взаимодействии ваших пользователей с сайтом. Воспользуйтесь следующими рекомендациями, которые применяют плагин Webroot для получения сертификата TLS/SSL без остановки сервера Nginx.

Сначала введите указанную команду.

sudo letsencrypt certonly —email — d

После этого выберите первый способ аутентификации.

Let

Затем нажмите клавишу Enter, чтобы перейти в корневой каталог вашего сайта.

плагин certbot для webroot

Перейдите в корневой каталог вашего веб-сервера. Наиболее часто встречающиеся корневые каталоги для веб-серверов — это /var/www/html и /usr/share/nginx/html/.

В течение нескольких секунд ваш сертификат будет получен от Let’s Encrypt.

Указанный выше процесс можно сделать автоматизированным, внедрив следующую функцию.

--webroot - w /var/www/html/

Команда —webroot рекомендует клиенту letsencrypt воспользоваться плагином Webroot. Параметр — w является сокращением для —webroot-path. Каталог /var/www/html/ часто используется в качестве основного корня веб-сервера. Поэтому вы можете выполнить следующую команду для получения сертификата TLS/SSL без остановки Nginx.

sudo letsencrypt certonly --email - d --webroot - w /var/www/html

Для обеспечения доступа к каталогу. well-known, возможно, вам придется внести следующие директивы в конфигурационный файл сервера Nginx.

Читайте также:  Как использовать утилиту fsck для проверки дисков в Linux

location ~ /.well-known

Продление сертификата Let’s Encrypt для TLS/SSL.

Каталог конфигурации для letsencrypt расположен по адресу /etc/letsencrypt. В этом каталоге можно обнаружить папку для обновления. В папке /etc/letsencrypt/renewal находятся конфигурационные файлы, которые определяют процесс обновления вашего сертификата.

Введите следующую команду, чтобы проверить процесс обновления на вашем сервере Debian 8:

sudo letsencrypt renew --dry-run

Вы заметите, что клиент letsencrypt применяет те же плагины и настройки, которые использовались при первоначальной генерации сертификата. Это стандартное поведение.

Для внесения изменений в плагин или настройки, применяемые при обновлении, необходимо изменить конфигурационные файлы, расположенные в директории /etc/letsencrypt/renewal.

Предположим, вы применяли плагин standalone для получения сертификата, но сейчас хотите переключиться на плагин Webroot для его обновления, чтобы избежать остановки Nginx. В этом случае откройте файл конфигурации.

sudo nano /etc/letsencrypt/renewal/ваше-имя-домена.conf

Сохраните первые четыре строки как есть, измените настройки обновления на следующие.

# Параметры, используемые в процессе обновления [renewalparams] authenticator = webroot installer = None account = 2d29325aa8757ab4198e96d1c7b46eb6webroot_path = /var/www/html [[webroot_map]] ваше-имя-домена = /var/www/html

Номер вашего аккаунта доступен по следующему пути: /etc/letsencrypt/accounts/acme-v01.api. letsencrypt. org/directory/.

После этого повторно проверьте процесс обновления.

sudo letsencrypt renew --dry-run --webroot-path /var/www/html

Теперь можно заметить, что он применяет плагин Webroot для обновления сертификата.

Для того чтобы запустить настоящий процесс обновления, просто уберите параметр —dry-run.

sudo letsencrypt renew --webroot-path /var/www/html

Указанная команда попытается обновить сертификаты, срок действия которых истекает в течение ближайших 30 дней. Чтобы открыть файл crontab для пользователя root, используйте следующую команду.

sudo crontab - e

и настроить задание cron.

0 5 * * * letsencrypt renew --webroot-path /var/www/html