Меню Рубрики

Установка letsencrypt ubuntu apache

Предложение от 8host.com

Создание сертификата Let’s Encrypt для Apache в Ubuntu 16.04

Данное руководство поможет настроить TLS/SSL сертификат Let’s Encrypt для Apache на сервере Ubuntu 16.04 и автоматизировать его обновление.

SSL-сертификаты необходимы веб-серверам для шифрования трафика между сервером и клиентом, что повышает безопасность данных пользователей и приложения. Сервис Let’s Encrypt позволяет быстро и просто получить такой сертификат.

Требования

  • Предварительно настроенный сервер Ubuntu 16.04 (инструкции по настройке – в этой статье).
  • Не-root пользователь с доступом к sudo.
  • Установленный сервер Apache.
  • Доменное имя.

1: Установка зависимостей

Установите git, чтобы загрузить пакет Let’s Encrypt:

Примечание: Чтобы узнать, что такое git, прочтите эту статью.

2: Загрузку клиента Let’s Encrypt

Теперь нужно загрузить клиент Let’s Encrypt из официального репозитория и поместить полученные файлы в специально отведённое место на сервере (это упростит обновление сертификата).

Примечание: На момент написания статьи клиент Let’s Encrypt все еще находится в бета-версии; следите за обновлениями клиента, чтобы устранить ошибки и внедрить новые функции.

Клонируйте репозиторий Let’s Encrypt в каталог /opt. Это стандартный каталог для хранения сторонних программ в системах Unix.

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Команда создаст локальную копию официального репозитория Let’s Encrypt в каталоге /opt/letsencrypt.

3: Создание SSL-сертификата

Сгенерируйте SSL-сертификат для Apache при помощи загруженного клиента Let’s Encrypt. Это довольно просто. Клиент автоматически получит и установит сертификат SSL, валидный для доменов, указанных в качестве параметров.

Откройте каталог letsencrypt

Чтобы запустить интерактивную установку и получить сертификат для одного домена, запустите следующую команду:

./letsencrypt-auto —apache -d example.com

Примечание: Условный домен example.com нужно заменить своим доменным именем.

Чтобы получить один сертификат для нескольких доменов или поддоменов, передайте их в качестве дополнительных параметров. Первый домен, указанный в команде, будет считаться базовым (потому поддомены рекомендуется указывать в конце):

./letsencrypt-auto —apache -d example.com -d www.example.com

Клиент предоставит пошаговые инструкции по настройке сертификата. Программа предложит указать адрес электронной почты (на случай если ключ будет утерян).

Также можно включить доступ http и https или настроить переадресацию всех запросов на https.

Примечание: Переадресация трафика на https рекомендуется в большинстве случаев.

После завершения установки сертификат будет помещен в /etc/letsencrypt/live. Проверьте состояние SSL-сертификата:

Примечание: Замените example.com своим доменом.

Вы получите доступ к сайту по https.

4: Автоматическое обновление

Сертификаты Let’s Encrypt действительны в течение 90 дней, но обновление рекомендуется выполнять заранее (например, через 60 дней использования сертификата). Клиент Let’s Encrypt предоставляет команду renew, которая проверяет текущий сертификат и обновляет его, если до даты его истечения остаётся меньше 30 дней.

Читайте также:  Установка aux на гранд витара

Чтобы настроить обновление для всех существующих доменов, запустите:

Поскольку сертификат был получен только что, команда не станет обновлять его. Она просто сообщит, что данный сертификат пока что не нуждается в обновлении.

Checking for new version.
Requesting root privileges to run letsencrypt.
/home/brennen/.local/share/letsencrypt/bin/letsencrypt renew
——————————————————————————-
Processing /etc/letsencrypt/renewal/example.com.conf
——————————————————————————-
The following certs are not due for renewal yet:
/etc/letsencrypt/live/example.com/fullchain.pem (skipped)
No renewals were attempted.

Обратите внимание: если вы создали один сертификат для нескольких доменов, в выводе команды будет указан только базовый домен, однако обновление будет действительно для всех доменов и поддоменов.

Чтобы обеспечить своевременное обновление сертификата, настройте демон cron для автоматического запуска команды renew раз в неделю или каждый день.

Отредактируйте crontab и создайте новую запись для команды renew. Чтобы отредактировать crontab пользователя root, введите:

Команда предложит выбрать редактор:

no crontab for root — using an empty one
Select an editor. To change later, run ‘select-editor’.
1. /bin/ed
2. /bin/nano

Чтобы принять редактор по умолчанию (nano), нажмите Enter.

Добавьте в конец таблицы следующую запись:

30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log

Сохраните и закройте файл. Это создаст новый процесс cron, который будет выполнять команду letsencrypt-auto renew каждый понедельник в 2.3о ночи. Вывод этой команды будет помещён в /var/log/le-renewal.log.

Примечание: Больше информации о cron можно найти в руководстве «Автоматизация задач с помощью Cron».

5: Обновление клиента Let’s Encrypt (опционально)

Чтобы обновить локальную копию клиента, запустите команду git pull в каталоге Let’s Encrypt.

cd /opt/letsencrypt
sudo git pull

Заключение

Теперь веб-сервер защищён при помощи бесплатного SSL-сертификата Let’s Encrypt. Напоминаем, что на данный момент клиент всё ещё находится в бета-версии, потому рекомендуется регулярно проверять официальный блог Let’s Encrypt на наличие обновлений.

источник

Установка ssl сертификата Apache от Lets Encrypt

В самом начале развития интернета все данные между сайтом и компьютером пользователя передавались открыто по протоколу HTTP, без шифрования, а это означает, что любой пользователь, находящийся между сервером и компьютером может прочитать эти данные или даже изменить. По такой схеме даже сейчас работает много сайтов. Но в нашем мире это не безопасно, поэтому был разработан протокол HTTPS, который позволяет шифровать данные для передачи между устройствами.

Читайте также:  Установка замка капота fortus

Для шифрования данных в этом протоколе используются сертификаты SSL. Сейчас HTTPS набирает большую популярность, такие компании, как Google пытаются заставить все больше сайтов интернета использовать SSL для защиты своих данных и организации более безопасного соединения. С другой стороны появился сервис Lets Encrypt, который позволяет получить SSL сертификат каждому полностью бесплатно. В этой статье мы рассмотрим как выполняется установка ssl сертификата Apache от Lets Encrypt.

Установка SSL сертификата Lets Encrypt в Apache

Я буду предполагать, что Apache у вас уже установлен и настроен для работы по протоколу http. Если это не так посмотрите статью установка и настройка Apache. Перед тем как переходить к самой настройке веб сервера нам нужно получить ssl сертификат, а для этого нужно установить клиент сервиса в систему.

Шаг 1. Установка клиента Lets Encrypt

Мы будем выполнять установку клиента Lets Encrypt из официальных репозиториев. Официальный клиент от Lets Encrypt называется certbot, в репозиториях Ubuntu 16.04 есть упрощенная версия — Letsencrypt. Нам полностью хватит ее функциональности. Для установки выполните команды:

sudo apt update
$ sudo apt install python-letsencrypt-apache

После этого клиент будет готов к использованию.

Шаг 2. Настройка Apache

Если Apache настроен на работу по http, то перед тем как идти дальше, должна быть выполнена настройка ssl apache. Нам нужно активировать модуль ssl и включить использование ssl по умолчанию.

Для активации модуля наберите:

Для использования SSL по умолчанию включаем конфигурационный файл:

sudo a2ensite default-ssl.conf

Осталось перезапустить веб-сервер для применения изменений:

sudo systemctl restart apache2

Шаг 3. Получение SSL сертификата

Установка ssl сертификата с помощью клиента Lets Encrypt выполняется очень просто. Клиент автоматически запросит и установит новый сертификат для принадлежащего вам домена.

Чтобы получить сертификат для одного домена, достаточно передать этот домен в параметрах команды:

sudo letsencrypt —apache -d example.com

Если нужно сделать сертификат действительным для нескольких доменов или субдоменов вы можете передать их в дополнительных параметрах. Первое доменное имя будет основным, поэтому рекомендуется передавать первым домен верхнего уровня, а уже потом субдомены:

Читайте также:  Установка локальных принтеров в домене

sudo letsencrypt —apache -d example.com -d www.example.com

Дальше нужно будет ввести несколько настроек для сертификата, сначала укажите адрес электронной почты, который будет использоваться для восстановления утерянного ключа или отправки уведомлений:

Затем примите лицензионное соглашение Lets Encrypt:

Утилита сама выполнит настройку веб-сервера Apache, вам только нужно будет выбрать надо ли разрешать http трафик или сразу перенаправлять все на https. Безопаснее и более правильно перенаправлять весь входящий трафик на https.

Когда установка SSL сертификата Apache ubuntu будет завершена, вы найдете созданные файлы сертификатов в папке /etc/letsencrypt/live. В этой папке будут четыре файла:

  • cert.pem — ваш сертификат домена;
  • chain.pem — сертификат цепочки Let’s Encrypt;
  • fullchain.pem — cert.pem и chain.pem вместе;
  • privkey.pem — секретный ключ вашего сертификата.

Теперь вы можете зайти на сайт по https. Чтобы проверить как работает SSL и правильно ли выполнена установка ssl сертификата на сайт, вы можете открыть в браузере такую ссылку:

Шаг 4. Автопродление сертификата

Настройка ssl Apache завершена. Но есть один минус, все сертификаты, полученные от Lets Encrypt действительны только на протяжении 90 дней и рекомендуется продлевать и срок действия каждые 60 дней. Клиент letsecnrypt имеет команду renew, которая позволяет проверить установленные сертификаты и обновить их если до истечения срока осталось меньше 30 дней.

Чтобы запустить процесс обновления для всех настроенных доменов выполните:

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

Самый простой способ автоматизировать этот процесс — добавить вызов утилиты в планировщик corn. Для этого выполните команду:

Затем, в открывшемся текстовом редакторе добавьте строку и сохраните изменения:

30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log

Таким образом, мы создали задачу, которая будет выполнять команду обновления каждый понедельник, в 2:30 утра. Информация про результат выполнения будет сохранятся в файл /var/log/le-renewal.log.

Выводы

В этой статье мы рассмотрели как выполняется установка ssl сертификата apache lets encrypt. Это поможет защитить ваш сайт от MITM атак, подслушивания и модификации трафика, а также благодаря тенденциям поощрения перехода на https может положительно сказаться на росте трафика.

источник

Добавить комментарий

Adblock
detector