Меню Рубрики

Установка ssl сертификата letsencrypt

Выпуск и установка SSL-сертификатов от Let’s Encrypt на VPS

Что такое SSL-сертификат и зачем он нужен?

SSL-сертификат (TLS-сертификат) — это специальный цифровой документ, который связывает между собой криптографический ключ и информацию о сайте, для которого он был выпущен. Наличие SSL-сертификата, выпущенного доверенным центром сертификации является обязательным условием для установления безопасного соединения между сервером и клиентами по протоколу HTTPS.

До недавнего времени, практически все центры сертификации выпускали SSL-сертификаты на платной основе. При этом существует несколько разновидностей таких сертификатов, различающихся степенью глубины проверки данных о владельце сайта. Из-за того, что такие SSL-сертификаты являлись платными, их достаточно редко использовали для небольших сайтов, домашних страниц, личных блогов и т.п. В результате, большая часть сайтов в интернете не использовала защищенные протоколы для связи с клиентами.

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

Let’s Encrypt — некоммерческий центр сертификации, у которого можно получить бесплатный SSL‑сертификат сроком действия в 90 дней. Для получения такого сертификата необходимо подтвердить факт владения доменом с использованием протокола аутентификации ACME (Automated Certificate Management Environment), согласно которому к веб-серверу, запросившему выпуск сертификата, производится серия запросов для валидации домена. После выполнения этой процедуры клиенту выдается SSL-сертификат и приватный ключ, которые необходимо передать своему веб-серверу для перехода на работу по протоколу HTTPS.

Мы подготовили простые инструкции, которые позволят вам выпустить бесплатный SSL-сертификат и настроить его автоматическое обновления для веб-серверов Nginx, Apache и панели управления VestaCP, в зависимости от того, что вы используете на своем виртуальном сервере.

Выпуск и настройка сертификата для панели управления VestaCP

Поддержка Let’s Encrypt доступна в VestaCP из коробки.

Обратите внимание!

Перед выпуском SSL сертификата LE убедитесь, что у добавляемого домена и поддомена www установлена корректная A-запись. A-запись должна указывать на IP-адрес текущего VPS сервера. Изменить A-запись можно в разделе DNS вашей панели управления.

Для выпуска и установки сертификата вы можете отметить дополнительные опции сразу при добавлении домена в разделе WEB панели VestaCP:

Или отредактировать настройки домена в разделе WEB, выбрав опции поддержки SSL уже после добавления:

Выпуск и автоматическая установка сертификата занимают до 5 минут. После этого данные SSL-сертификата будут доступны также в настройках домена.

Помимо этого, добавляется cron-задание для автоматического обновления сертификатов, истекающих через 30 и менее дней. Проверить это можно в разделе CRON панели VestaCP:

Решение возможных проблем

Error: Let’s Encrypt validation status 400
  • Убедитесь, что ваше доменное имя было введено правильно.
  • При использовании АААА записей убедитесь, что в DNS присутствуют также записи типа А.
  • Убедитесь, что записи DNS типа A для этого домена и www-поддомена содержат правильный IP-адрес (адрес текущего VPS сервера).
  • Убедитесь, что в конфигурационном файле NGINX отсутствует 301-й редирект на HTTPS (для выпуска или перевыпуска сертификата домен должен быть доступен по HTTP).
Error: LetsEncrypt challenge request 429
  • Попробуйте удалить домен из панели VestaCP и добавить его снова, после чего повторить попытку выпуска сертификата.
  • Повторите попытку выпуска сертификата через 1 час.

Выпуск и настройка сертификата для веб-серверов Apache и Nginx

В случае использования веб-сервера без панели управления выпуск, дальнейшее обновление сертификата и настройку веб-сервера удобно будет выполнять при помощи Certbot.

Certbot — это клиент протокола ACME, который устанавливается на конечном сервере и используется для запроса сертификата, валидации домена, установки сертификата и дальнейшего автоматического продления сертификатов от Let’s Encrypt. Для получения сертификатов у Certbot есть несколько плагинов, которые делятся на два типа — аутентификаторы и установщики.

Аутентификатор используется только для получения сертификатов — он проверяет, что вы имеете доступ к домену, для которого запрашиваете сертификат, получает сертификат для указанного домена и помещает файлы сертификата в каталог /etc/letsencrypt/ на вашем сервере. Аутентификатор не устанавливает сертификат и не редактирует конфигурацию вашего веб-сервера для настройки сертификата.

Установщик — это плагин, который помимо получения сертификатов устанавливает его путем изменения конфигурации вашего веб-сервера. На сегодняшний день установка сертификатов полностью автоматизирована и для Apache, и для Nginx.

Для веб-сервера Apache

Установка Certbot на Ubuntu 18.04 с веб-сервером Apache:

CentOS 7 с веб-сервером Apache:

Debian 9 с веб-сервером Apache:

Инструкция по установке Certbot на другие дистрибутивы доступна на официальном сайте Certbot.

После установки Certbot можно приступать к выпуску сертификата. Самый простой и быстрый способ — использовать плагин Apache для выпуска и автоматической установки сертификата:

Плагин получает сертификат для домена (доменов) и автоматически устанавливает его, конфигурируя соответствующим образом Apache.

Для установки Certbot должен иметь возможность найти корректный виртуальный хост в вашей конфигурации Apache. Для этого он будет искать директиву ServerName, соответствующую доменному имени, для которого вы запросите сертификат. Поэтому предварительно убедитесь, что конфигурация веб-сервера настроена верно.

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

Если вы запускаете Certbot впервые, вам будет предложено указать email для регистрации в Let’s Encrypt и получения важных уведомлений, а также ознакомиться с условиями использования и принять их.

После окончания установки сертификата Certbot предоставит вам дополнительную информацию, а также ссылку для проверки установленного сертификата:

Плагин Webroot

Чтобы получить только SSL-сертификат для дальнейшей самостоятельной установки, используйте плагин apache с командой certonly:

Плагин apache с командой certonly внесет временные изменения в конфигурацию веб-сервера (добавит новый виртуальный хост для проверки прав на домен согласно протоколу ACME) и откатит их назад после получения подтверждения, а также при необходимости активирует mod_ssl.

Если вы не хотите, чтобы Certbot каким-либо образом конфигурировал файлы Apache, используйте плагин webroot.

После запуска плагина вы сможете указать доменное имя (или имена) для запроса сертификата, а также путь к директории с файлами сайта.

По результатам работы Certbot уведомит вас и в случае успеха укажет путь к файлам сертификата. В нашем примере файлы размещены по пути:

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

Затем откройте файл для правки и исправьте значения следующих директив на соответсвующие вашему домену пути:

В том же файле в директиве необходимо вместо хоста по умолчанию указать «*» :

Теперь необходимо активировать mod_ssl и включить новую конфигурацию, после чего перезагрузить веб-сервер:

Обновление сертификатов

Сразу при установке Certbot добавляет cron-задание для автоматического обновления полученных им сертификатов. Задание будет запускаться дважды в день и обновлять те сертификаты, срок действия которых истекает через 30 дней и менее. Чтобы убедиться в этом, откройте файл /etc/cron.d/certbot и проверьте наличие задания.

Протестировать автоматическое обновление сертификатов вы можете, выполнив команду:

Для веб-сервера Nginx

Установка Certbot на Ubuntu 18.04 с веб-сервером Nginx.

Обратите внимание!

В случае, если используется связка Nginx+Apache, сертификат следует выпускать именно по инструкции ниже!

CentOS 7 с веб-сервером Nginx:

Debian 9 с веб-сервером Nginx:

Инструкция по установке Certbot на другие дистрибутивы доступна на официальном сайте Certbot.

После установки Certbot можно приступать к выпуску сертификата. Самый простой и быстрый способ — использовать плагин Nginx для выпуска и автоматической установки сертификата

Плагин получает сертификат для домена (доменов) и автоматически устанавливает его, конфигурируя соответствующим образом Nginx.

Для установки Certbot должен иметь возможность найти корректный блок server в вашей конфигурации. Для этого он будет искать директиву server_name, соответствующую доменному имени, для которого вы запрашиваете сертификат. Поэтому предварительно убедитесь, что конфигурация веб-сервера настроена верно.

Если вы запускаете Certbot впервые, вам будет предложено указать email для регистрации в Let’s Encrypt и получения важных уведомлений, а также ознакомиться с условиями использования и принять их.

После окончания установки сертификата Certbot предоставит вам дополнительную информацию, а также ссылку для проверки установленного сертификата:

Плагин Webroot

Чтобы получить только SSL-сертификат для дальнейшей самостоятельной установки, используйте плагин nginx с командой certonly:

Плагин nginx с командой certonly внесет временные изменения в конфигурацию веб-сервера (добавит новый блок server для проверки прав на домен согласно протоколу ACME) и откатит их назад после получения подтверждения.

Если вы не хотите, чтобы Certbot каким-либо образом конфигурировал файлы Nginx, используйте плагин webroot.

После запуска плагина вы сможете указать доменное имя (или имена) для запроса сертификата, а также путь к директории с файлами сайта.

По результатам работы Certbot уведомит вас и в случае успеха укажет путь к файлам сертификата. В нашем примере файлы размещены по пути:

Путь к этим файлам необходимо указать в блоке server конфигурации Nginx. Пример настроек SSL для Nginx в файле /etc/nginx/sites-available/default:

После этого проверим корректность конфигурации:

После чего перезагрузим веб-сервер:

Обновление сертификатов

Сразу при установке Certbot добавляет cron-задание для автоматического обновления полученных им сертификатов. Задание будет запускаться дважды в день и обновлять те сертификаты, срок действия которых истекает через 30 дней и менее. Чтобы убедиться в этом, откройте файл /etc/cron.d/certbot и проверьте наличие задания.

Протестировать автоматическое обновление сертификатов вы можете, выполнив команду:

источник

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

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

Читайте также:  Установка заглушки на кухонный плинтус

Для шифрования данных в этом протоколе используются сертификаты 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 может положительно сказаться на росте трафика.

источник

Let’s Encrypt — бесплатный SSL-сертификат: как получить, инструкция по установке, настройке и продлению

В статье рассмотрим плюсы и минусы бесплатного Let’s Encrypt, для кого подойдет, как получить и установить его на сайт с панелью Plesk 12.5

Let’s Encrypt— бесплатный, автоматизированный проект, с открытым CA (certificate authority — центр сертификации).

Читайте также:  Установка камина с водяной рубашкой

ОСНОВНЫЕ ПРЕИМУЩЕСТВА

бесплатно: любой владелец сайта (в частности, доменного имени) может получить и установить доверенный TLS-сертификат Let’s Encrypt (TLS — наследник SSL);
автоматизация: все функции установки, конфигурации и обновления проводятся в автоматическом режиме;
безопасность: все методы шифрования Let’s Encrypt отвечают текущим стандартам;
прозрачность: публичная доступность информации о выпуске и отзыве каждого сертификата для любого желающего;
свободно: будет использован принцип open standard для протоколов взаимодействия с CA (certificate authority).

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Центр Сертификации выдаёт сертификаты, которые генерируются на АСМЕ сервере по протоколу Boulder, написанные на языке GO (доступный в исходниках под лицензией MPL2).
Данный сервер предоставляет RESTful-протокол, который функционирует через канал с TLS шифрованием.
Клиентская часть протокола АСМЕ , т.е. certbot, написанный на языке Python, также открыт под APACHE лицензией . Certbot устанавливается на клиентском сервере, чтобы создавать запрос сертификата, проверить валидность домена и после этого устанавливает сертификат с последующей настройкой шифрования HTTPS веб-сервера.
Также в функцию certbot входит обновление сертификата после истечения срока действия. Установка сертификата производится одной командой после того как принимается лицензия.
Certbot позволяет устанавливать сертификат с дополнительными опциями -OCSP stapling и HTTP Strict Transport Security

УСТАНАВЛИВАЕМ SSL СЕРТИФИКАТ LET’S ENCRYPT (ИНСТРУКЦИЯ)

Рассмотрим использование сертификата применительно к серверам , используемым на нашем хостинге.
Подавляющее большинство наших серверов используют версию Plesk 12.5 где данный модуль уже включён в дистрибутив Plesk 12.5 и установка его проста и удобна. Достаточно зайти в панель плеск в раздел «Сайты и домены », кликнуть на модуль Let’s Encrypt,

выбрать нужные опции и после нажатия кнопки «Установить», установка произойдёт менее чем за минуту.

Так как данный сертификат рассчитан на срок не более 90 дней, то в панели плеск создана соответствующая задача cron в разделе Инструменты и настройки — Планировщик задач

Стоит заметить, что существуют некоторые ограничения на генерацию сертификата:

  • дублирующие сертификаты — не более 5 в неделю;
  • количество попыток генерации сертификата не более 5 раз в час.

О НЕДОСТАТКАХ LET’S ENCRYPT

В конце этой статьи хотим отметить, что несмотря на все преимущества данного типа сертификата, существуют недостатки, которые нужно учитывать при выборе SSL:

    Бесплатный сертификат Let’s Encrypt кратковременный и рассчитан на срок не более 90 дней, в отличии от платного, который можно выпустить сроком до 3 лет. Вы можете , конечно, перевыпускать сертификат каждые 3 месяца, но обязательно следите за сроками. Перевыпуск сертификата можно осуществить тремя способами: вручную, за счет настройки планировщика задач cron или автоматически.

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

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

Автоматическое обновление. Этот способ подразумевает, что вы принимаете автоматические настройки, предусмотренные Центром сертификации. И тут нужно понимать, что вы таким образом, даете свое согласие на то, что ЦС может вносить изменения по своему усмотрению в ПО и настройки вашего сервера.
Не все домены можно защитить бесплатным Let’s Encrypt. Данный сертификат рассчитан только на защиту одного домена без проверки компании, так называемые DV SSL (Domain Validation).

Так, при помощи Let’s Encrypt нельзя создать следующие типы сертификатов:

— WildCard сертификат для защиты поддоменов определённого домена;
— Сертификаты OV SSL(organization validation), предполагающие проверку не только домена, но и компании;
— Сертификаты EV SSL (extended validation). Сертификат с максимальной степенью защиты и зелёной адресной строкой браузера;
— Multi-Domain сертификат типа UCC;

  • Важный момент — нет никаких финансовых гарантий использования Let’sEncrypt . Если вдруг произойдет взлом бесплатного сертификата, то денежную компенсацию никто вам не предоставит.
  • ЗАКЛЮЧЕНИЕ

    Подводя итоги, можно сказать, что Центр Сертификации Let’s Encrypt достаточно успешный проект, популярность которого растет с каждым годом среди пользователей сети.

    И если вам нужен простой сертификат для одного домена, вы обладаете соответствующими навыками администрирования, а также если нет необходимости в SSL с проверкой компании (OV- organization validation) или наличие зеленой адресной строки и указания названия компании в сертификате, то данный сертификат можно использовать.

    Тем не менее, мы рекомендуем крупным компаниям, интернет-магазинам, банкам и другим e-commerce проектам устанавливать коммерческие SSL — сертификаты от известных Центров сертификации, таких как, например, GlobalSign, Comodo.
    Так вы заручитесь доверием пользователей и покажете, что вы серьезная компания, которая заботится о безопасности данных клиентов.

      Поделиться:

    источник

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