Как сделать сертификат для сайта https

Как выпустить самоподписанный SSL сертификат и заставить ваш браузер доверять ему

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Все крупные сайты давно перешли на протокол https. Тенденция продолжается, и многие наши клиенты хотят, чтобы их сайт работал по защищенному протоколу. А если разрабатывается backend для мобильного приложения, то https обязателен. Например, Apple требует, чтобы обмен данными сервера с приложением велся по безопасному протоколу. Это требование введено с конца 2016 года.

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

Чтобы выпустить сертификат для вашего локального домена, понадобится корневой сертификат. На его основе будут выпускаться все остальные сертификаты. Да, для каждого нового top level домена нужно выпускать свой сертификат. Получить корневой сертификат достаточно просто.
Сначала сформируем закрытый ключ:

Затем сам сертификат:

Нужно будет ввести страну, город, компанию и т.д. В результате получаем два файла: rootCA.key и rootCA.pem

Переходим к главному, выпуск самоподписанного сертификата. Так же как и в случае с корневым, это две команды. Но параметров у команд будет значительно больше. И нам понадобится вспомогательный конфигурационный файл. Поэтому оформим все это в виде bash скрипта create_certificate_for_domain.sh

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

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

Запросим у пользователя название домена. Добавим возможность задания “общего имени” (оно используется при формировании сертификата):

Чтобы не отвечать на вопросы в интерактивном режиме, сформируем строку с ответами. И зададим время действия сертификата:

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

Сформируем csr файл (Certificate Signing Request) на основе ключа. Подробнее о файле запроса сертификата можно почитать в этой статье.

Формируем файл сертификата. Для этого нам понадобится вспомогательный файл с настройками. В этот файл мы запишем домены, для которых будет валиден сертификат и некоторые другие настройки. Назовем его v3.ext. Обращаю ваше внимание, что это отдельный файл, а не часть bash скрипта.

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

Возвращаемся в наш bash скрипт. На основе вспомогательного файла v3.ext создаем временный файл с указанием нашего домена:

Переименовываем сертификат и удаляем временный файл:

Скрипт готов. Запускаем его:

Получаем два файла: mysite.localhost.crt и device.key

Теперь нужно указать web серверу пути к этим файлам. На примере nginx это будет выглядеть так:

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Запускаем браузер, открываем https://mysite.localhost и видим:

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Браузер не доверяет этому сертификату. Как быть?

Нужно отметить выпущенный нами сертификат как Trusted. На Linux (Ubuntu и, наверное, остальных Debian-based дистрибутивах) это можно сделать через сам браузер. В Mac OS X это можно сделать через приложение Keychain Access. Запускаем приложение и перетаскиваем в окно файл mysite.localhost.crt. Затем открываем добавленный файл и выбираем Always Trust:

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Обновляем страницу в браузере и:

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Успех! Браузер доверяет нашему сертификату.

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

Делитесь в комментариях, используете ли вы https для локальной разработки?

Максим Ковтун,
Руководитель отдела разработки

Источник

Обзор бесплатных SSL-сертификатов

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Статья посвящена обзору и сравнению различных SSL-сертификатов.

Мы все заботимся о безопасности: на машину ставим сигнализацию, а двери квартиры закрываем на замок. Точно так же сайты обеспечивают себе безопасность. Один из главных элементов этой безопасности – SSL-сертификат, применяемый еще с далекого 1994 года. Именно он обеспечивает безопасный канал связи между сайтом и пользователем.

SSL-сертификаты бывают трех видов:

• DV (Domain Validation) – проверка домена, быстрая выдача от 15 минут;
• OV (Organization Validation) – проверка организации, выпускается за несколько дней;
• EV (Extended Validation) – расширенная проверка (знаменитый зеленый замочек, как у Timeweb), выпускается за неделю.

Сегодня мы будем рассматривать сертификаты с проверкой домена (DV), причем только бесплатные варианты, и выберем, какой сертификат больше всего подходит для старта.

Let’s Encrypt – классика жанра

Let’s Encrypt (letsencrypt.org) – некоммерческая организация, созданная в 2012 году, обрела свою популярность исключительно из-за бесплатных сертификатов (на 90 дней).

Плюсы:

Минусы:

Cloudflare

Cloudflare (cloudflare.com) – американская компания, предоставляющая услуги CDN и защиты от DDoS-атак. Также предоставляет сертификаты безопасности на бесплатной основе.

Плюсы:

Минусы:

Free SSL Space

Free SSL Space (freessl.space) – довольно новый проект, партнерами которого являются один из крупнейших сертифицирующих центров Sectigo CA (ранее Comodo CA), выпускающий эти сертификаты, и крупный продавец платных сертификатов GoGetSSL (gogetssl.com).

Плюсы:

Минус:

Немного о платных сертификатах

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

Хорошим примером соотношения цены и качества будет Sectigo Positive SSL — можете купить его по низкой цене в панели Timeweb: поддерживается один домен, но на год, а не на 90 дней.

Выводы

По быстроте и удобству выдачи несомненная победа у Free SSL Space. С безопасностью у него тоже все в порядке, именно поэтому мы рекомендуем использовать именно его.

Источник

Как получить бесплатный SSL-сертификат: пошаговая инструкция

Сегодня получить бесплатный SSL сертификат для сайта достаточно простая задача, позволяющая быстро и без лишних затрат перейти на безопасный протокол HTTPS.

Самостоятельное получение бесплатного SSL-сертификата для сайта

Для того, чтобы получить бесплатный SSL-сертификат и перейти на https потребуется посетить сайт https://www.sslforfree.com/, где в первую очередь рекомендуется зарегистрироваться, кликнув на «Login».

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Теперь вписываем адрес сайта (Важно! Если выдается сертификат для поддомена, то необходимо ввести его адрес, например, poddomen.site.ru) и нажимаем на «Create Free SSL Certificate».

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

В появившемся окне «ZeroSSL» выбираем «New Certificate».

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Вводим домен, например, «seopulses.ru».

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Важно! Бесплатно можно получить только на 90 дней!

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Оставляем все без изменений и переходим на следующий шаг через кнопку «Next Step».

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Теперь нам предлагается 3 способа подтверждения:

О каждом из этих способов указано ниже.

Подтверждение по почте

В этом случае система предложит написать на одну из почт:

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

В этом случае лучше всего:

Если указанной почты нет среди аккаунтов, то следует ее создать, например, в интерфейсе Яндекс.Коннекта это выглядит так:

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Отправляем письмо для проверки.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

В системе видно, что сообщение отправлено.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Далее приходит письмо на почту, где нужно скопировать проверочный код и перейти на страницу верификации.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

На проверочной странице вводим ключи и нажимаем на «Next».

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

В ZeroSSL обновляем статус заявки.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Видим, что все прошло успешно и кликаем на «Install Certificate».

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Скачиваем бесплатный SSL-сертификат через кнопку «Download Certificate (.zip).

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

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

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Далее переходим к установке его на сервер.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Важно! Одни аккаунт может иметь до трех доменов с сертификатами бесплатно.

Подтверждение бесплатного SSL-сертификата через DNS

На этапе выбора подтверждения кликаем на «DNS», где получаем нужные данные для ввода.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

На следующем шаге видим, что система мониторит записи для подтверждения.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Переходим к хостинг-провайдеру (или другой интерфейс, куда через NS был делегирован домен) и переходим к редактированию DNS.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Добавляем новую TXT-запись.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Вводим выданные нам значения.

Важно! Name содержит запись для поддомена (111.site.ru), следует вводить только указанный только до домена код.

Важно! Во многих системах интерфейс может быть различных, например, на примере в Timeweb не требуется ввод TTL, поэтому это опускаем.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Все готово, можно переходить к его установке.

Подтверждение бесплатного SSL через HTTP-файл

Выбираем пункт для подтверждения «HTTP File Upload» и скачиваем файл.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Система начинаем проверку.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Далее переходим в панель управления сервером или FTP-аккаунт, где в корневой папке сайта (как правило, public_html) создаем папку «.well-known».

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

В ней аналогично создаем еще одну папку «pki-validation».

Загружаем файл, скачанный в самом начале инструкции.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Все готово подтверждаем информацию (аналогично почте) и получаем сертификат.

Установка бесплатного сертификата на хостинг

Установка SSL-сертификата на сервер

В первую очередь распаковываем архив с сертификатом и видим, что он состоит из:

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Данный пункт необходим тем, кто не смог получить его у хостера и приобрел его не у своего провайдера. Для этого посещаем раздел «SSL», где выбираем пункт «Установить».

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Вводим в соответствующие поля свой файл и завершаем установку.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Важно! Если не имеется навыка работы с интерфейсом хостинг компании (у некоторых провайдеров отсутствует возможность загружать сертификат самостоятельно в интерфейсе) рекомендуется загрузить архив с сертификатом на сервер и написать в поддержку с просьбой об установке.

Важно! Срок действия сертификата 3 месяца, после чего его потребуется обновиться, выполнив инструкцию еще раз.

Важно! Если сертификат выдается на поддомен, то потребуется подтвердить лишь основной домен (соответственно загрузить лишь 1 файл или установить 1 TXT-запись).

Через ISPmanager

Следует посетить раздел «WWW»-«SSL-сертификаты», после чего кликнуть на «Создать».

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Выбираем пункт «Существующий».

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Ставим данные из файлов в нужные поля и даем имя сертификату.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Важно! Если не получается воспользоваться ни первым ни вторым способом или данного раздела (SSL) нет в административной панели (как, например, в SprintHost), то Вы можете загрузить сертификаты на свой сервер и создать тикет хостинг-провайдеру для установки.

Получение бесплатного SSL-сертификата через хостинг-провайдера

Если хостинг-провайдер предоставляет бесплатный SSL-сертификат, то можно воспользоваться им. Так его предоставляют:

Например, в случае с Timeweb достаточно посетить административную панель после чего перейти во вкладку «SSL-сертификаты» и нажимаем на «Заказать».

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Теперь выбираем «Let’s Encrypt» (бесплатный) и домен, которому он будет применен.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Важно! Для того, чтобы воспользоваться данным методом необходимо делегировать сайт под управление компании хостинга при помощи А-записи.

Источник

Как установить бесплатный SSL-сертификат для своего сайта

Let’s Encrypt — это центр сертификации (англ. certification authority, CA), предоставляющий лёгкий способ получения и установки TLS/SSL-сертификатов, обеспечивающих возможность использования протокола HTTPS на веб-сервере. Работа с Let’s Encrypt упрощена наличием клиента Certbot, который автоматизирует большую часть работы. Тем не менее, бесплатный SSL-сертификат можно установить на веб-сервер вручную, независимо от его конфигурации.

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

В этом руководстве мы расскажем, как при помощи Certbot получить бесплатный SSL-сертификат и использовать его в Nginx на Ubuntu 16.04. Мы также покажем, как настроить автоматическое обновление SSL-сертификата во избежание истечения его срока действия. Если у вас запущен другой веб-сервер, следуйте его документации, чтобы узнать, как использовать сертификат для вашей конфигурации.

Как сделать сертификат для сайта https. Смотреть фото Как сделать сертификат для сайта https. Смотреть картинку Как сделать сертификат для сайта https. Картинка про Как сделать сертификат для сайта https. Фото Как сделать сертификат для сайта https

Шаг 0. Подготовка

Перед тем, как приступить к работе, вам нужно убедиться в нескольких вещах.

У вас должен быть установлен сервер на Ubuntu 16.04, и создан пользователь (не root), для которого настроены sudo привилегии. Узнать, как это сделать, вы можете, следуя руководству по первичной настройке сервера на Ubuntu 16.04.

Вы должны быть владельцем доменного имени, для которого планируется использовать сертификат, или иметь доступ к его настройке. Если у вас нет зарегистрированного доменного имени, вы можете сделать это, используя один из регистраторов (например, Namecheap или GoDaddy).

Если все требования выполнены, приступаем к установке Certbot — клиента Let’s Encrypt.

Шаг 1. Устанавливаем Certbot

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

Для начала добавьте репозиторий:

Нажмите ENTER для подтверждения. После этого необходимо обновить пакеты:

По завершении установите Certbot, используя команду apt-get :

Теперь Certbot готов к использованию.

Шаг 2. Получаем SSL-сертификат

Certbot предоставляет несколько способов получения SSL-сертификатов при помощи разных плагинов. В отличие от плагина для Apache, который описан в другом руководстве, большинство плагинов помогут вам только получить сертификат, который придётся настроить на вашем сервере вручную. Плагины, которые позволяют только получать сертификаты и не устанавливают их, называются «аутентификаторами», так как они используются для подтверждения подлинности сервера, которому сертификат выдаётся.

Давайте разберёмся, как использовать плагин Webroot для получения SSL-сертификата.

Использование плагина Webroot

Если вы ещё не установили Nginx, сделайте это, следуя руководству по установке Nginx на Ubuntu 16.04.

Внутри блока server добавьте такой блок location :

Сохраните и закройте файл.

Проверьте вашу конфигурацию на синтаксические ошибки:

Если ошибок нет, перезапустите Nginx, используя эту команду:

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

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

Примечание 2. Если для вашего домена используется маршрутизация через такой DNS-сервис, как CloudFlare, вам придется временно отключить её до тех пор, пока сертификат не будет получен.

Файлы сертификата

После получения сертификата у вас должны появиться следующие файлы в PEM-кодировке:

Вы можете проверить существование файлов, используя такую команду (подставьте ваше доменное имя):

Результатом выполнения команды должны быть указанные выше файлы сертификата. Теперь вы можете настроить ваш сервер так, чтобы fullchain.pem использовался в качестве файла сертификата, а privkey.pem в качестве ключа сертификата.

Генерация ключа по алгоритму Диффи-Хеллмана

Для повышения безопасности вам необходимо сгенерировать ключ по алгоритму Диффи-Хеллмана. Для генерации ключа длиной 2048 бит используйте такую команду:

Процесс может занять несколько минут.

Шаг 3. Настраиваем TLS/SSL на веб-сервере

Теперь, когда у вас есть SSL-сертификат, необходимо настроить веб-сервер Nginx так, чтобы он начал его использовать.

Внесем некоторые изменения в нашу конфигурацию:

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

Создаем сниппет конфигурации для SSL-ключа и сертификата

В этом файле необходимо установить соответствие директивы ssl_certificate файлу сертификата и ssl_certificate_key — соответствующему ключу. В нашем случае это будет выглядеть так:

Когда добавите эти строки, сохраните и закройте файл.

Создаем сниппет конфигурации с устойчивыми настройками шифрования

Следующим шагом мы создадим другой сниппет, определяющий некоторые настройки SSL. Это позволит Nginx подключить устойчивый «набор шифров» SSL (англ. cipher suite) и некоторые дополнительные функции, которые помогут обеспечить безопасность нашего сервера.

Прим. перев. Cipher Suite — это совокупность алгоритмов, используемых в конкретной TLS/SSL-сессии:

Установленные нами параметры могут быть использованы повторно для конфигураций Nginx в будущем, поэтому дадим файлу стандартное название:

Для настройки безопасной связки Nginx-SSL мы будем использовать рекомендации сайта Cipherli.st. Он создан для предоставления быстрого доступа к готовым настройкам шифрования популярного программного обеспечения. Дополнительная информация доступна в руководстве по настройке SSL для Nginx.

Примечание. Предлагаемые стандартные настройки на сайте Cipherli.st обеспечивают устойчивую безопасность, но иногда это приводит к ухудшению совместимости. Если вам необходимо поддерживать более старые версии клиентов, используйте альтернативный список настроек, доступный при нажатии на значок «Yes, give me a ciphersuite that works with legacy/old software.» Составить такой список можно и вручную.

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

Сперва добавим DNS-резолвер. Используем для нашего руководства тот, что предлагает Google. Затем установим в качестве параметра ssl_dhparam указатель на файл ключа Диффи-Хеллмана, который мы сгенерировали ранее.

И, наконец, почитайте о протоколе HTTP Strict Transport Security, или HSTS. Он обеспечивает повышенную безопасность, но его некорректное использование может привести к серьезным последствиям. В этом руководстве мы отключим заголовочный файл по умолчанию, но вы можете не делать этого, если уверены, что понимаете последствия:

После внесения изменений сохраните и закройте файл.

Настраиваем конфигурацию Nginx для SSL

Теперь, когда мы подготовили сниппеты, можно обновить нашу конфигурацию Nginx и подключить SSL.

Перед тем, как двигаться дальше, давайте сделаем резервную копию нашего текущего файла с блоками server :

Теперь откройте файл с блоками server для внесения изменений:

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

После внесения изменений сохраните и закройте файл.

Альтернативная конфигурация: разрешаем HTTP- и HTTPS-трафик

Если вы хотите или вынуждены разрешить и шифрованный, и нешифрованный контент, вам придётся настроить Nginx немного иначе. Так делать не стоит, но в некоторых ситуациях это может быть необходимо. По сути, мы склеим разделенные блоки server в один и уберём перенаправление:

После внесения изменений сохраните и закройте файл.

Шаг 4. Настраиваем файрвол

Если у вас включен файрвол ufw, вам необходимо обновить настройки и разрешить SSL-трафик. К счастью, Nginx регистрирует несколько профилей с ufw после установки.

Вы можете посмотреть текущие настройки, введя:

Вероятно, результат будет выглядеть следующим образом, означая, что на сервере разрешён только HTTP-трафик:

Чтобы разрешить HTTPS-трафик, можно включить профиль «Nginx Full» и удалить лишний профиль «Nginx HTTP»:

Теперь состояние файрвола должно выглядеть так:

Шаг 5. Подключаем изменения в Nginx

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

Первым делом стоит проверить и убедиться, что синтаксические ошибки в наших файлах отсутствуют. Это можно сделать, введя:

В случае успеха ваш результат должен выглядеть следующим образом:

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

Вы можете использовать инструмент Qualys SSL Labs Report, чтобы посмотреть оценку конфигурации вашего сервера:

Такая настройка SSL должна показать рейтинг A+.

Шаг 6. Настраиваем автоматическое обновление

Сертификаты от Let’s Encrypt действуют только в течение 90 дней. Это побуждает пользователей к автоматизации процесса обновления. Нам понадобится создать регулярно запускающуюся команду для проверки и автоматического обновления сертификатов, срок которых истекает.

Для запуска проверки ежедневных обновлений мы будем использовать Cron — стандартный системный сервис для запуска повторяющихся задач. Задачи Cron указываются в файле под названием crontab :

Вставьте следующую строчку в конец файла, затем сохраните и закройте его:

Часть строчки 15 3 * * * означает «запускай следующую команду в 3:15 ночи ежедневно». Вы можете выбрать любое время.

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

Заключение

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

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *