Как защитить Apache с помощью Let's Encrypt в Ubuntu 14.04
###Введение
В этом руководстве показано, как настроить сертификат TLS/SSL от Let’s Encrypt на сервере Ubuntu 14.04, на котором в качестве веб-сервера используется Apache.
Сертификаты SSL используются на веб-серверах для шифрования трафика между сервером и клиентом, обеспечивая дополнительную безопасность для пользователей, обращающихся к вашему приложению. Let’s Encrypt предоставляет простой способ бесплатно получить и установить доверенные сертификаты.
## Предпосылки
Чтобы выполнить это руководство, вам потребуется:
- Сервер Ubuntu 14.04 с пользователем sudo без полномочий root, который можно настроить, следуя нашему руководству по начальной настройке сервера.
- Веб-сервер Apache установлен с одним или несколькими правильно настроенными доменными именами
Когда вы будете готовы двигаться дальше, войдите на свой сервер, используя свою учетную запись с поддержкой sudo.
##Шаг 1 — Загрузите клиент Let’s Encrypt
Первым шагом к использованию Let’s Encrypt для получения SSL-сертификата является установка программного обеспечения certbot
на ваш сервер. Разработчики Certbot поддерживают собственный репозиторий программного обеспечения Ubuntu с последними версиями программного обеспечения. Поскольку Certbot находится в такой активной разработке, стоит использовать этот репозиторий для установки более новой версии Certbot, чем предоставленная Ubuntu.
Сначала добавьте репозиторий:
- sudo add-apt-repository ppa:certbot/certbot
Вам нужно будет нажать ENTER
, чтобы принять. После этого обновите список пакетов, чтобы получить информацию о пакете нового репозитория:
- sudo apt-get update
И, наконец, установите Certbot из нового репозитория с помощью apt-get
:
- sudo apt-get install python-certbot-apache
Клиент certbot
Let’s Encrypt теперь готов к использованию.
##Шаг 2 — Настройка SSL-сертификата
Создание SSL-сертификата для Apache с помощью certbot
клиента Let’s Encrypt довольно просто. Клиент автоматически получит и установит новый SSL-сертификат, действительный для доменов, указанных в качестве параметров.
Чтобы выполнить интерактивную установку и получить сертификат, который распространяется только на один домен, запустите команду certbot
с помощью:
- sudo certbot --apache -d example.com
Если вы хотите установить один сертификат, действительный для нескольких доменов или субдоменов, вы можете передать их команде в качестве дополнительных параметров. Первое доменное имя в списке параметров будет базовым доменом, используемым Let's Encrypt для создания сертификата, и по этой причине мы рекомендуем вам указать пустое доменное имя верхнего уровня первым в списке, за которым следуют любые дополнительные поддомены. или псевдонимы:
- sudo certbot --apache -d example.com -d www.example.com
В этом примере базовым доменом будет example.com
.
Вам будет предложено указать адрес электронной почты для восстановления утерянного ключа и уведомлений, а также принять условия обслуживания Let’s Encrypt. Затем вам будет предложено выбрать между включением доступа к http
и https
или принудительной переадресацией всех запросов на https
.
Когда установка будет завершена, вы сможете найти сгенерированные файлы сертификатов в /etc/letsencrypt/live
. Вы можете проверить статус своего SSL-сертификата по следующей ссылке (не забудьте заменить example.com своим базовым доменом):
https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest
Теперь вы сможете получить доступ к своему веб-сайту, используя префикс https
.
Шаг 3 — Проверка автоматического продления Certbot
Сертификаты Let’s Encrypt действительны только в течение 90 дней. Однако установленный нами пакет certbot позаботится об этом за нас, запуская certbot renew
два раза в день с помощью системного таймера. В дистрибутивах, отличных от systemd, эта функциональность обеспечивается сценарием cron, размещенным в /etc/cron.d
. Задача запускается два раза в день и обновляет любой сертификат, срок действия которого истекает в течение тридцати дней.
Чтобы протестировать процесс обновления, вы можете выполнить пробный запуск с помощью certbot
:
- sudo certbot renew --dry-run
Если вы не видите ошибок, все готово. При необходимости Certbot обновит ваши сертификаты и перезагрузит Apache, чтобы применить изменения. Если автоматический процесс продления когда-либо завершится с ошибкой, Let’s Encrypt отправит сообщение на указанный вами адрес электронной почты с предупреждением о том, что срок действия вашего сертификата скоро истечет.
##Заключение
В этом руководстве мы увидели, как установить бесплатный SSL-сертификат от Let’s Encrypt, чтобы защитить веб-сайт, размещенный с помощью Apache. Мы рекомендуем вам ознакомиться с официальной документацией Certbot для получения более подробной информации о клиенте Certbot.