Генерация SSL-сертификатов с помощью LetsEncrypt в Debian
Если вы еще не поняли, шифрование важно. Для Интернета это означает использование SSL-сертификатов для защиты веб-трафика. Недавно Mozilla и Google зашли так далеко, что отметили сайты без SSL-сертификатов как небезопасные в Firefox и Chrome.
Чтобы ускорить работу сети с помощью шифрования, Linux Foundation вместе с Electronic Frontier Foundation и многими другими создали LetsEncrypt. LetsEncrypt - это проект, предназначенный для предоставления пользователям доступа к бесплатным сертификатам SSL для их веб-сайтов. На сегодняшний день LetsEncrypt выпустил миллионы сертификатов и имеет оглушительный успех.
Использовать LetsEncrypt легко в Debian, особенно при использовании утилиты Certbot из EFF.
Установка для Apache
Certbot имеет специализированный установщик для сервера Apache. У Debian этот установщик доступен в его репозиториях.
# apt install python-certbot-apache
Пакет предоставляет certbot команду. Плагин Apache взаимодействует с сервером Apache для обнаружения информации о ваших конфигурациях и доменах, для которых он генерирует сертификаты. В результате для генерации ваших сертификатов требуется только короткая команда.
# certbot --apache
Certbot сгенерирует ваши сертификаты и настроит Apache для их использования.
Установка для Nginx
Nginx требует немного больше ручной настройки. Опять же, если вы используете Nginx, вы, вероятно, привыкли к ручной настройке. В любом случае, Certbot все еще доступен для загрузки через репозитории Debian.
# apt install certbot
Плагин Certbot все еще находится в альфа-версии, поэтому его использование не рекомендуется. У Certbot есть еще одна утилита под названием "webroot", которая упрощает установку и обслуживание сертификатов. Чтобы получить сертификат, выполните команду ниже, указав вашего корневого веб-директора и любые домены, которые вы хотите покрыть сертификатом.
# certbot certonly --webroot -w /var/www/site1 -d site1.com -d www.site1.com -w /var/www/site2 -d site2.com -d www.site2.com
Вы можете использовать один сертификат для нескольких доменов с помощью одной команды.
Nginx не распознает сертификаты, пока вы не добавите их в свою конфигурацию. Любые SSL-сертификаты должны быть указаны в списке server для соответствующего веб-сайта. В этом блоке также необходимо указать, что сервер должен прослушивать порт 443 и использовать SSL.
Сохраните свою конфигурацию и перезапустите Nginx, чтобы изменения вступили в силу.
# systemctl restart nginx
Автообновление с Cron
Независимо от того, используете ли вы Apache или Nginx, вам нужно будет обновить свои сертификаты. Лучший способ справиться с обновлением ваших сертификатов - создать задание cron, которое будет выполняться два раза в день. Рекомендуются два раза в день, потому что они защищают от потери сертификатов из-за отзыва, который может происходить время от времени. Они не обновляются каждый раз. Утилита проверяет, устарели ли сертификаты или будут в течение тридцати дней. Он будет обновлять их, только если они соответствуют критериям.
Сначала создайте простой скрипт, который запускает утилиту обновления Certbot. Вероятно, хорошей идеей будет поместить его в домашний каталог вашего пользователя или в каталог скриптов, чтобы он не обслуживался.
#! /bin/bash
certbot renew -q
Не забудьте также сделать сценарий исполняемым.
$ chmod +x renew-certs.sh
Теперь вы можете добавить скрипт как задание cron. Откройте ваш crontab и добавьте скрипт.
# crontab -e
* 3,15 * * * /home/user/renew-certs.sh
После выхода скрипт должен запускаться каждый день в 3 часа до полудня и в 3 часа после полудня по часам сервера.
Подводя итог
Шифрование вашего веб-сервера защищает как ваших гостей, так и вас самих. Шифрование также будет продолжать играть роль, при которой сайты отображаются в браузерах, и не так уж сложно предположить, что это также будет играть роль в SEO. В любом случае, шифрование вашего веб-сервера - хорошая идея, а LetsEncrypt - самый простой способ сделать это.