Бесплатные SSL сертификаты от Let s Encrypt. Let s encrypt как получить сертификат.

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

Записки IT специалиста

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

Узнайте, как настроить MikroTik с нуля, или расширьте свои знания в нашем подробном курсе по администрированию MikroTik. Автор курса, сертифицированный инструктор MikroTik Дмитрий Скоромнов, лично проверяет лабораторные задания и следит за успехами студентов. В три раза больше информации, чем в программе MTCNA, более 20 часов практических занятий и пожизненный доступ.

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

Все приведенные ниже инструкции предназначены для пользователей текущих версий Debian и Ubuntu, но многие из них применимы и к другим дистрибутивам Linux.

Установка в Debian 8 Jessie

В настоящее время Debian 8 является основной «рабочей лошадкой» этого семейства. Однако Certbot не включен в официальные репозитории, и для его установки необходимо использовать специальный репозиторий backports. Он содержит пакеты из более новых дистрибутивов, скомпилированные для использования в текущем дистрибутиве, который может быть недостаточно стабильным или иметь другие проблемы, поэтому используйте его с осторожностью.

Откройте /etc/apt/sources.list и добавьте следующую строку:

Затем обновите список пакетов:

Теперь установите пакет с явно указанным репозиторием:

Поскольку Certbot написан на Python, он автоматически получает несколько пакетов Python в качестве зависимостей, но это не должно вызвать никаких проблем.

certbot-001.pngУстановка в Ubuntu 14.04/16.04

В отличие от разработчиков Debian, Ubuntu пошла по другому пути и настроила Certbot как отдельный PPA. Он позволяет любому создать свой собственный репозиторий и известен каждому пользователю Ubuntu. Однако ответственность за PPA несут исключительно их создатели, поэтому их следует использовать с осторожностью и осмотрительностью.

Сначала установите необходимое программное обеспечение PPA:

Затем добавьте нужный PPA:

Обновите список пакетов:

И установите Certbot:

Порядок одинаков для всех дистрибутивов Ubuntu, при этом PPA-ссылка автоматически определяет версию Ubuntu и добавляет необходимые репозитории. Также можно установить certbot на промежуточные версии (16.10 или 17.04), но мы не рекомендуем использовать его в производственных средах.

При первом использовании certbot вам будет предложено указать адрес электронной почты и принять условия использования. Затем certbot связывается с сервером Let’s Encrypt и отправляет запрос на подтверждение того, что вы контролируете домен, для которого вы хотите подать заявку на сертификат.

Установка SSL сертификата для Apache

Мой блог работает на нескольких LAMP, т.е. Linux, Apache, MySQL и PHP. Разработчики Let’s Encrypt сделали все возможное, чтобы упростить конфигурацию сертификатов для Apache и сделать ее «самой простой в мире». Весь процесс сводится к следующим шагам:

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

  • Проверка владения доменом
  • Выдать необходимый сертификат сроком действия 90 дней
  • Выполните все необходимые настройки для веб-сервера Apache.

После всех этих манипуляций мне оставалось только установить 301 (Moved Permanently) перенаправление с http на https и перезапустить веб-сервер.

С конфигурацией nginx все еще хуже, в основном потому, что это дополнение пока не работает с letsencrypt-auto. Если вам нужно настроить SSL-сертификаты для nginx (что, конечно, необходимо, поскольку nginx — один из самых популярных веб-серверов), я бы рекомендовал сделать это вручную. Как это сделать, вы можете прочитать ниже.

Настройка SSL сертификатов для других веб-серверов

Пакет letsencrypt содержит ряд дополнений, помимо дополнения Apache, а именно:

Standalone

Суть автономного режима заключается в том, что скрипт попытается активировать собственный веб-сервер на время выпуска сертификата (для подтверждения владения доменом), поэтому необходимо отключить уже работающий веб-сервер, чтобы освободить порты 80 и 443. Этот вариант непрактичен для большинства веб-разработчиков, поскольку им приходится отключать сайт.

Webroot

Этот вариант подходит для тех, кого не устраивает автономная работа. Если вы указываете ключ —webroot, вам также следует указать каталог, в котором находятся файлы, обрабатываемые веб-сервером.

Если вы работаете с этой опцией, вы должны соответствующим образом настроить веб-сервер для чтения файлов.

Manual

Как следует из названия, настройка и установка SSL-сертификата выполняется вручную :-). Это, вероятно, самый удобный способ настройки сертификата для nginx, поскольку надстройка letsencrypt nginx довольно «сырая».

После ввода этой команды необходимо выполнить проверку домена вручную, поместив файл с указанным содержимым в нужный каталог на сайте. Когда создание сертификата будет завершено, все необходимые файлы будут находиться по следующему пути: /etc/letsencrypt/live/$domain. Подкаталог live содержит самые последние сертификаты и ключи, а файлы keys и file содержат все ранее созданные файлы.

Настройка SSL в Nginx

Итак, если ручное создание сертификата прошло успешно, в вышеуказанном каталоге содержатся все файлы, необходимые для настройки безопасного соединения.

  • privkey.pem — Наш закрытый ключ
  • cert.pem — Сертификат сервера
  • chain.pem — корневой и промежуточный уровень
  • fullchain.pem — все необходимые сертификаты для создания веб-сервера.

Как настроить Nginx в этом случае?

Ребята из letsencrypt советуют не перемещать файлы, потому что при обновлении сертификата старые автоматически заменяются новыми с теми же путями; в этом случае лучше создавать символические ссылки.

Продление SSL сертификата

Как упоминалось ранее, бесплатные SSL-сертификаты действительны только в течение 90 дней. Поэтому, когда срок их действия истечет, вам следует начать процесс продления, который также является бесплатным :-).

Как происходит процесс продления?

Согласно Let’s Encrypt, перед истечением срока действия сертификата пользователь получает по электронной почте уведомление о том, что пришло время обновить сертификат. Чтобы сделать это вручную, достаточно выполнить команду:

И следуйте инструкциям на экране. Автоматическое обновление можно настроить с помощью конфигурационного файла и обычного crontab. Кронтаб желательно настроить так, чтобы он не обновлялся чаще, чем раз в месяц.

Если вы работаете под Windows, letsencrypt можно развернуть с помощью Vagrant или Docker. В этом случае вам нужно будет вручную перенести все файлы на сервер, чтобы правильно настроить веб-сервер.

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

Подготовка к выпуску SSL-сертификата

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

Если вы не пропустили первый пункт, VirtualHost для вашего домена был правильно добавлен в файл /etc/apache2/sites-available/ domain.name .conf с директивой ServerName.

Если вы пропустили первый пункт, или если вы уже создали конфигурационный файл, измените его так, чтобы ServerName содержал имя вашего домена, сохраните и перезапустите Apache:

На этом подготовка конфигурационных файлов для работы с Certbot завершена.

Читайте также

Что такое Tor Browser

Как пользоваться telnet

Настройка HTTPS

Если вы используете брандмауэр ufw, HTTPS по умолчанию отключен. Давайте сначала проверим статус:

В моем случае он был отключен:

Давайте проверим его еще раз, тогда мы, вероятно, увидим его:

Чтобы обойти HTTPS-трафик, необходимо включить Apache Full Profile и SSH, иначе в будущем вы не сможете подключиться через SSH:

И если мы снова посмотрим, то увидим:

После действия От — —— —- Apache Full ALLOW Anywhere 22/tcp ALLOW Anywhere Apache Full (v6) ALLOW Anywhere (v6) 22/tcp (v6) ALLOW Anywhere (v6)

Как только это будет сделано, мы можем непосредственно приступить к выпуску сертификата.

Установка Certbot

Чтобы выпустить SSL-сертификат Let’s Encrypt, нам нужно установить на сервер программу Certbot.

Если вы устанавливаете программное обеспечение из PPA, введите команду:

Затем добавьте репозиторий:

Чтобы принять его, необходимо нажать ENTER.

Давайте установим пакет Apache Certbot с помощью apt:

Итак, у нас есть Certbot, готовый к использованию. Теперь, прежде чем настраивать сертификат для Apache, нам нужно проверить некоторые параметры веб-сервера.

Оцените статью
Бизнес блог