Данное руководство показывает, как установить бесплатный 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
После этого введите следующую команду для получения сертификата.
sudo letsencrypt certonly —email — d
Подкоманда certonly инструктирует клиента letsencrypt запросить сертификат, но не производить его установку, так как на момент написания клиент letsencrypt не предоставляет автоматическую конфигурацию для Nginx.
Электронный адрес предназначен для получения срочных уведомлений и восстановления забытых ключей. Пожалуйста, укажите свой реальный адрес электронной почты. Опция — d служит для указания вашего домена. Замените её на актуальное доменное имя. Необходимо указать ваше доменное имя, соответствующее IP-адресу вашего сервера на базе Debian 8, иначе проверка домена не пройдет успешно.
Вам будет предложено выбрать способ аутентификации. Пожалуйста, выберите второй вариант и нажмите клавишу Enter.

В течение нескольких секунд вам должно появиться поздравительное сообщение, как указано ниже.
ВАЖНЫЕ ЗАМЕТКИ: - Поздравляем! Ваш сертификат и цепочка успешно сохранены по следующему адресу. /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.
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
После этого выберите первый способ аутентификации.

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

Перейдите в корневой каталог вашего веб-сервера. Наиболее часто встречающиеся корневые каталоги для веб-серверов — это /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.
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

