Установка Letsencrypt на Ubuntu 14.04 и nginx

Всем привет!

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

Предистория

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

Сертификат узла был отозван. (Код ошибки: sec_error_revoked_certificate)

Вот и приехали, а я только их выпустил… Начал разбираться и вышло, что по новым политикам безопасности FF несколько удостоверяющих центров были исключены, вот пруф, а вот список исключенных корневых центров (цитата):

The code will use the following Subject Distinguished Names to identify the root certificates, so that the control will also apply to cross-certificates of these roots.

  • CN=CA 沃通根证书, OU=null, O=WoSign CA Limited, C=CN
  • CN=Certification Authority of WoSign, OU=null, O=WoSign CA Limited, C=CN
  • CN=Certification Authority of WoSign G2, OU=null, O=WoSign CA Limited, C=CN
    CN=CA WoSign ECC Root, OU=null, O=WoSign CA Limited, C=CN
  • CN=StartCom Certification Authority, OU=Secure Digital Certificate Signing, O=StartCom Ltd., C=IL
  • CN=StartCom Certification Authority G2, OU=null, O=StartCom Ltd., C=IL

Решено было срочно переходить на LetsEncrypt, так как сам же FF это и советовал (узнал, почитав багтрекер).

Подготовка

Предполагаем, что у Вас есть доступ к консоли сервера Ubuntu, а так же у Вас установлен Nginx (не важно в связке с Apache или нет), и установлен git.

Установка Letsencrypt

Создаем в корне сервера директорию opt, переходим в неё, клонируем дистрибутив с репозитория:

Останавливаем Nginx, если он у Вас работает на 443 порту, либо что-то иное если слушает порт — останавливаем.

Генерируем сертификаты для Ваших доменов, можно сгенерировать как один сертификат для всех, так и отдельно для каждого. Для примера команда, сгенерировавшая сертификат для этого блока выглядит так:

Вы подменяете email адрес и указываете доменные имена через опция -d.

Если всё успешно — софт сгенерирует сертификаты и положит их в папку:

Но данный этап не прошел у меня гладко и при генерации появились ошибки:

Получается, софт не смог открыть соединение на 443 порту, хотя nginx мы остановили. Начал разбираться, что держит порт:

Ага, есть повисший процесс nginx, избавляемся:

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

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

Получаем описание находящихся там файлов:

Для дальнейшей настройки сервера Nginx нам понадобятся 2 файла, это fullchain.pem, и privkey.pem.

Настройка Nginx

Идем в директорию с файлами настроек хостов:

При необходимости создать настройки для отдельного хоста — используем его конфигурационный файл, при отсутствии — файл default. При необходимости создать файл конфигурации можно воспользоваться служебными командами nginx, либо скопировать файл default в другой и произвести настройки в нём. Пример конфигурации nginx в связке с Apache для работы с https протоколом:

Особо стоит обратить внимание на:

1 — секция для выполнения 301 редиректа с протокола http на протокол https указанных доменов (# — знак комментирования строки, при необходимости убрать)

2 — секция настроек, работающих только по https протоколу:

3 — добавление созданных сертификатов и включение шифрования:

Основные моменты озвучил — остальные настройки опциональын. Запускаем nginx:

Вроде всё.

VN:F [1.9.22_1171]
Рейтинг: 0.0/5 (0 голос (-ов) всего)

Комментарии закрыты