Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

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

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

  • Настройка SSL Apache с LetsEncrypt
  • Выводы
  • Выделенные серверы и ДЦ
  • Работа с Dedicated
  • Как установить бесплатный SSL-сертификат Let’s Encrypt на Dedicated-сервер

Чтобы обеспечить защиту вашего сайта по протоколу HTTPS, воспользуйтесь Let’s Encrypt SSL — получить сертификат можно одним из 2-х способов:

вместе с созданием нового сайта

  • в графе «Имя» введите имя домена,
  • укажите контактный email,
  • поставьте галочку напротив графы Защищенное соединение (SSL).

Готово, заявка на установку SSL Let’s Encrypt будет обработана в течение 5 минут. Результат рассмотрения заявки отобразится в «Журнале». Чтобы открыть журнал, перейдите в раздел SSL-сертификаты и кликните Let’s Encrypt Журнал. Сертификат Let’s Encrypt будет установлен в течение 24 часов.

Также вы можете подключить сертификат Let’s Encrypt для существующего домена. Для этого в разделе Сайты выберите нужный домен из списка, наведите курсор на Редактировать и нажмите Изменить. Затем выполните действия, указанные в инструкции выше, начиная с галочки в графе Защищенное соединение (SSL) (шаг 2).

  • Войдите в ISPmanager на выделенном сервере под root-пользователем. Затем в разделе «SSL-сертификаты» кликните Let’s Encrypt:
  • поставьте галочку напротив графы Включить SSL-сертификат,поставьте галочку напротив графы Wildcard-сертификат (так вы выберите SSL-сертификат для поддомена Let’s Encryptе — его действие будет распространяться на все поддомены),в выпадающем списке выберите домен, для которого будет выпускаться сертификат.Затем нажмите ОК:
  • поставьте галочку напротив графы Включить SSL-сертификат,
  • поставьте галочку напротив графы Wildcard-сертификат (так вы выберите SSL-сертификат для поддомена Let’s Encryptе — его действие будет распространяться на все поддомены),
  • в выпадающем списке выберите домен, для которого будет выпускаться сертификат.

Готово, заявка на установку Let’s Encrypt будет обработана в течение 5 минут. Результат рассмотрения заявки отобразится в «Журнале». Чтобы открыть журнал, перейдите в раздел SSL-сертификаты и кликните Let’s Encrypt Журнал. Сертификат Let’s Encrypt будет установлен в течение 24 часов.

Также на сайте REG.RU можно получить free ssl certificate GlobalSign на год при покупке домена или хостинга.

Спасибо за оценку!Как мы можем улучшить статью?

Нужна помощь?Напишите в службу поддержки!

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

Этот вариант подходит например тем, кто хостится у ру-центра (nic.ru) — там специально не вводят автоматику установки сертификата, чтобы продавать задорого то, что давно не нужно.

Увы, большинство инструкций или ведут на платные сервисы, или на линуксовые инструкции для хостингов, чтобы найти вариант «на домашнем компе и без заморочек с автоматикой», пришлось напрячься, так что если кому-то время сэкономлю — будет уже неплохо.

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Распаковываем в удобное место, запускаем wacs.exe:

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Выбираем N для создания нового сертификата, и 2 для ручной настройки:

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Вводим адрес нашего домена, и тут я рекомендую через запятую ввести его в формате «www.домен».

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

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

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Далее нам надо отказаться от загрузки вебконфига (просто тыкаем enter), ввести имя пользователя FTP, которого мы создали, выбрать ввод пароля в консоли (2), ввести сам пароль, отказаться от его сохранения (enter):

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Следующим пунктом идёт место сохранения сертификата. Проще всего — в папке программы создайте папку SSL, и скопирeйте прямо из окна проводника путь (для вставки скопированного текста — нажмите правой кнопкой мыши в окне программы):

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Далее соглашаемся ввести пароль от приватного ключа в консоли (2), придумываем и вводим пароль, отказываемся от сохранения (enter), и отказываемся от выполнения дополнительных скриптов (3):

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

А в созданной папке для сертификатов появилось 4 файла:

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Нам отсюда обычно нужны только файлы сертификата (-crt) и ключа (-key).

Дальше — надо загрузить их на хостинг, и тут уже зависит от конкретного хостинга. Я покажу на примере ру-центра.

В панели управления хостингом выбираем «Сайты», потом ваш сайт, вкладку «Безопасность», при необходимости включаем «Защищенное HTTPS-соединение» и нажимаем на «Добавить/сменить сертификат».

Тут нам надо скормить полученный файлы хостеру. Выбираем напротив «сертификат» кнопку «загрузить файл», грузим файл с crt в названии, аналогично с приватным ключом, вводим под ним пароль, который мы задали ранее, и нажимаем на «Установить»:

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Поздравляю, сертификат установлен!

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Поверить срок действия можно в разделе «безопасность» конкретного сайта:

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Через без копеек 3 месяца надо будет повторить процесс, но win-acme сохранил данные (кроме паролей), и при запуске надо будет выбирать не «N: Create certificate», а «R: Run renewals».

Nginx — один из самых популярных веб-серверов, благодаря его высокой производительности при больших нагрузках. В наше время всё больше и больше сайтов поддерживают HTTPS и производители браузеров, такие как Google и Mozilla всеми силами пытаются мотивировать владельцев сайтов переходить на этот защищённый протокол.

В последнее время сделать это не очень сложно, потому что все популярные веб-серверы его поддерживают, а получить сертификат можно абсолютно бесплатно. В сегодняшней статье мы поговорим о том как настроить SSL в Nginx с сертификатом Lets Encrypt.

  • Настройка SSL в Nginx с Lets Encrypt
  • Выводы

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

Обратите внимание, что для получения сертификата необходимо чтобы к серверу был привязан домен, потому что сертификат будет выдан именно для этого домена и только так центр сертификации сможет убедится, что этот домен и сервер ваши. В этом примере я буду получать сертификат для домена vps.losst.pro и www.vps.losst.pro. Соответственно А запись обоих доменов должна указывать на сервер.

Шаг 1. Настройка виртуального хоста

Если у вас ещё не настроен HTTP виртуальный хост для сайта, то это надо сделать потому что иначе установить SSL сертификат Nginx не получится. Например, для vps.losst.pro самая простая конфигурация будет выглядеть вот так:

Читать также:  Греющий кабель EXTHERM 20Вт

sudo vi /etc/nginx/conf.d/vps-losst-ru.conf

Затем проверьте конфигурацию Nginx:

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

И если всё верно, перезапустите веб-сервер:

sudo systemctl restart nginx

Директория /var/www/vps.losst.pro/public_html/ должна существовать, и в ней надо расположить индексный файл с каким нибудь содержимым:

sudo mkdir -p /var/www/vps.losst.pro/public_html/

sudo vi /var/www/vps.losst.pro/public_html/index.html

Убедиться что всё работает можно с помощью браузера или утилиты curl:

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Установка Certbot

Для получения сертификатов LetsEncrypt официально рекомендовано использовать клиент Certbot. Установить программу можно из официальных репозиториев:

sudo apt install certbot certbot-python-nginx

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

Получение сертификата

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

sudo certbot certonly —nginx -d vps.losst.pro -d www.vps.losst.pro

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

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Далее сертификат SSL создастся и вы получите такое сообщение:

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Здесь программа сообщает о том, что файлы сертификата SSL Nginx сохранены в каталоге /etc/letsencrypt/live/vps.losst.pro/. Теперь настройка SSL Nginx.

Настройка виртуального хоста для SSL

В папке /etc/letsencrypt/live/vps.losst.pro/ находятся такие файлы сертификатов:

  • cert.pem — файл сертификата, использовать его мы не будем;
  • chain.pem — файл цепочки сертификата, тоже не будем использовать;
  • privkey.pem — приватный ключ сертификата, надо прописать в параметре ssl_certificate_key;
  • fullchain.pem — в нём объединено содержимое cert.pem и chain.pem, надо прописать в параметре ssl_certificate.

Для SSL надо создать отдельный файл виртуального хоста, в котором порт прослушивания будет 443, и будут присутствовать несколько директив настройки SSL:

sudo vi /etc/nginx/conf.d/vps-losst-ru-ssl.conf

После создания файла останется перезапустить Nginx:

Уже на этом этапе всё должно работать.

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Дополнительная безопасность

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

ssl_protocols TLSv1.2 TLSv1.3;

В примере я разрешаю только TLSv1.2 и TLSv1.3 для хорошей оценки от ssllabs, но в производственной системе возможно стоит разрешить всю линейку протоколов TLS, если вам нужна поддержка устройств не поддерживающих современные методы шифрования. Затем надо добавить шифры, которые мы хотим использовать:

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

После завершения настроек не забудьте перезапустить Nginx.

Проверка

Проверить параметры работы SSL можно с помощью сайта SSLlabs. Просто откройте такую ссылку в браузере, заменив домен сайта на свой:

Как видите, всё хорошо, и сайт получил оценку A. Сертификат SSL Nginx установлен и работает.

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

Минус сертификатов от Lets Encrypt в том, что они актуальны только 90 дней. За 30 дней до истечения этого срока их рекомендуется перевыпускать. Для этого существует специальная команда:

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

Эта команда будет выполнятся каждый понедельник в 2:30 и записывать свой вывод в файл /var/log/le-renew.log.

Введение

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

Официальный сайт Let’s Encrypt .

Работа с сертификатами Let’s Encrypt возможна сразу после установки панели управления.

Обращаем ваше внимание, Let’s Encrypt имеет следующие ограничения (подробнее в документации об ограничениях):

  • Можно заказать только 50 сертификатов в неделю (TLD, включая его поддомены);
  • Срок действия Let’s Encrypt сертификата 3 месяца (каждые 3 месяца ispmanager выполняет перевыпуск Let’s Encrypt сертификатов);
  • Все альтернативные имена должны быть поддоменами домена сертификата.

В ispmanager вы сможете получить действующий самообновляющийся SSL-сертификат для своего домена.

Для этого Вам понадобится пользователь, имеющий право пользоваться SSL, и действующее доменное имя, доступное для мировых ДНС.

В разделе SSL-сертификаты есть кнопки Let’s Encrypt и Let’s Encrypt Журнал, при нажатии на первую вы приступите к процессу получения сертификата.

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

Перед созданием сертификата убедитесь, что выпуск сертификатов Let’s Encrypt разрешён:

  • В Основном меню выберите Пользователи.
  • На открывшейся форме выберите пользователя и нажмите на кнопку Права.
  • Выберите SSL-сертификаты в открывшейся форме и нажмите на кнопку Функции.
  • В открывшейся форме выберите Let’s Encrypt и Let’s Encrypt Журнал и нажмите Вкл.

Создание сертификата

Есть два способа получения Let’s Encrypt сертификата:

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

Проверка необходимости обновления ваших сертификатов, выданных сервисом Let’s Encrypt, будет проходить каждый день в 1:30 ночи по серверному времени.

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

Перевыпуск сертификата будет в соответствии с установленным значением параметра LetsencryptStartUpdatePeriod, для которого по умолчанию установлено 29 дней.

Рекомендуемые значения от 7 до 29. Не рекомендуется указывать значения меньше 7 и больше 29, а так же отрицательные значения и буквы.

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

Также можно запустить обновление сертификата вручную. Для этого имеется функция letsencrypt.check.update. В случае, если вы хотите запустить преждевременно обновление, необходимо вызвать эту функцию через утилиту mgrctl:

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

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

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

Технология получения сертификата

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

Можно запустить вручную letsencrypt.periodic через утилиту mgrctl.

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

Читать также:  Ошибка установки свойства в контекст сертификата объект или свойство не найдено 0х80092004

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

  • Создание учетной записи;
  • Запрос на проверку владения доменом (для проверки владением доменом на сервер пользователя добавляется токен – файл, содержащий данные, полученные при аутентификации. На сервере существует глобальная зависимость .well-known/acme-challenge/, ведущая в директорию /usr/local/mgr5/www/letsencrypt. Все токены проверки будут создаваться по этому пути;
  • Ожидание подтверждения успешного завершения проверки;

DNS проверка

Мы добавляем возможность проверки владения доменом через TXT записи в доменной зоне. Для получения сертификата с DNS проверкой, при заказе сертификата отметьте чекбокс «Проверка через DNS».

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Необходимые TXT-записи будут автоматически добавлены на форму Управление записями домена. Для просмотра:

  • В Основном меню выберите Управление DNS.
  • На открывшейся форме выберите сайт и нажмите на кнопку Управлять DNS записями.

Если вы используете внешний DNS-сервер, то процесс выдачи будет заморожен на 30 минут, а в интерфейсе в левом углу около глобального поиска и в разделе Уведомления (в Мониторинг и журналы) будет показано уведомление с информацией, какие записи необходимо прописать на внешнем сервере для получения сертификатов.

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

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

Почтовые домены

Для получения сертификата на почтовый домен при создании/редактировании почтового домена выберите Новый Let’s Encrypt сертификат. Далее введите псевдонимы, которые использует выбранный домен для работы почты (pop.your_domain.com, mail.your_domain.com, smtp.your_domain.com или др). Если в панели отсутствует одноименный веб-домен, то процедура проверки будет принудительно проводиться через DNS.

Поддержка wildcard

В ISPmanager реализована поддержка wildcard-сертификатов. Для получения такого сертификата, на форме заказа нужно включить чекбокс Wildcard.

Проверка владения доменом при выпуске wildcard-сертификата осуществляется исключительно по DNS.

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

Нестандартные ситуации

Может возникнуть нестандартная ситуация, когда веб-домен размещен на более чем один узел кластера. В случае, если у какого-либо из этих узлов отсутствует веб-роль, он не сможет участвовать в процедуре проверки по HTTP. Пути решения проблемы:

  • Использовать DNS проверку.
  • Через некоторое время после нескольких провалов сервер ACME путем перебора успешно найдет подходящие адреса для HTTP проверки.

Логирование

Лог взаимодействия ispmanager с Let’s Encrypt записывается в файл /usr/local/mgr5/var/letsencrypt.log.

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

  • В Основном меню выберите Мониторинг и журналы.
  • В раскрывшемся списке выберите Настройка логирования.
  • Выделите модули  sslcert, rpc, core_modules и нажмите на кнопку Максимальный.

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

Страница модуля интеграции Let’s Encrypt на сайте ISPmanager .

Обращаем ваше внимание, Let’s Encrypt имеет следующие ограничения:

Кроме того существуют и другие ограничения. Подробнее в документации об ограничениях .

Данный функционал доступен с версии ISPmanager 5.131.

После установки плагина Let’s Encrypt в ISPmanager Вы сможете получить действующий самообновляющийся SSL-сертификат для своего домена.

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

И запускаться оно (обновление) будет если срок действия сертификата прекращается через семь или менее дней.

Так же можно запустить обновление сертификата вручную. Для этого имеется функция letsencrypt.check.update. В случае, если Вы хотите запустить преждевременно обновление необходимо вызвать эту функцию через утилиту mgrctl:

  • Создание учетной записи;
  • Запрос на проверку владения доменом (для проверки владением доменом на сервер пользователя добавляется токен – файл содержащий данные, полученные при аутентификации. На сервере существует глобальный алиас .well-known/acme-challenge/, ведущий в директорию /usr/local/mgr5/www/letsencrypt. Все токены проверки будут создаваться по этому пути;
  • Ожидание подтверждения успешного завершения проверки;

Мы добавляем возможность проверки владения доменом через TXT записи в доменной зоне. Для получения сертификата с DNS проверкой, при заказе сертификата просто поставьте галочку «Проверка через DNS».

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

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

Для получения сертификата на почтовый домен необходимо при созданииредактировании почтового домена выбрать Новый Let’s Encrypt сертификат. Далее необходимо ввести псевдонимы, которые использует выбранный домен для работы почты (pop.your_domain.com, mail.your_domain.com, smtp.your_domain.com или др). Если в панели отсутствует одноименный веб-домен, то процедура проверки будет принудительно проводиться через DNS

Начиная с версии 5.147.0 в панелях Lite и Business реализована поддержка wildcard-сертификатов. Для получения такого сертификата, на форме заказа нужно включить чекбокс Wildcard.

Может возникнуть нестандартная ситуация, когда веб-домен «резолвится» на более чем один узел кластера. В случае, если у какого-либо из этих узлов отсутствует веб-роль, он не сможет участвовать в процедуре проверки по HTTP. Пути решения проблемы:

  • Использовать DNS проверку
  • Просто подождать. После нескольких провалов сервер ACME, путем перебора, успешно найдет подходящие адреса для HTTP проверки.

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

Так же можно запустить обновление сертификата вручную. Для этого имеется функция letsencrypt.check.update. В случае, если Вы хотите запустить преждевременно обновление необходимо вызвать эту функцию через утилиту :

Можно запустить вручную letsencrypt.periodic через утилиту .

  • Создание учетной записи;
  • Авторизация;
  • Запрос на проверку владения доменом (для проверки владением доменом на сервер пользователя добавляется токен – файл содержащий данные, полученные при аутентификации. На сервере существует глобальный алиас .well-known/acme-challenge/, ведущий в директорию /usr/local/mgr5/www/letsencrypt. Все токены проверки будут создаваться по этому пути;
  • Ожидание подтверждения успешного завершения проверки;
  • Получение сертификата.

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

  • Зажмите Ctrl и выделите модули  ssl, rpc, core_modules.
  • Нажмите кнопку Максимальный.

Настройка SSL Apache с LetsEncrypt

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

Шаг 1. Настройка DNS

Наличие DNS — одно из самых важных условий для получения сертификата от Lets Encrypt. Сервис выдаёт сертификаты только публично доступным доменам. Только так они могут убедится, что этот домен принадлежит вам. Поэтому A запись вашего домена должна обязательно указывать на IP адрес, на котором вы собираетесь настроить Apache с SSL. В этом примере я буду рассматривать получение сертификата сразу для домена с www и без www. Поэтому оба домена должны быть привязаны к IP адресу.

Читать также:  Сертификат соответствия на продукцию из китая как сделать

Шаг 2. Настройка виртуального хоста

Сайт, для которого вы хотите создать SSL сертификат должен уже быть доступен без HTTPS на порту 80. Поэтому его виртуальный хост Apache должен уже быть настроен. В этом примере я буду получать сертификат для vps.losst.pro. Для примера можно создать такой виртуальный хост:

sudo vi /etc/apache2/sites-available/vps-losst-ru.conf

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Далее надо /var/www/vps.losst.pro/public_html не существует, его надо создать и дать на него права пользователю www-data:

sudo mkdir -p /var/www/vps.losst.pro/public_html
chown www-data:www-data /var/www/vps.losst.pro/public_html

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

Далее надо активировать данный сайт в Apache:

sudo a2enmod rewrite

sudo a2ensite vps-losst-ru

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

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

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

Клиент Lets Encrypt называется Certbot. Он доступен в официальных репозиториях. Для установки выполните такие команды:

sudo apt install certbot python-certbot-apache

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

sudo apt install snapd

Теперь установите самую последнюю версию certbot из snap такой командой:

sudo snap install —classic certbot

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

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

Далее необходимо получить сертификат. Утилита умеет устанавливать сертификаты автоматически, но мы этого делать не будем, чтобы разобраться как всё делается вручную. Для генерации используется такая команда:

sudo certbot certonly —apache -d vps.losst.pro -d www.vps.losst.pro

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

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

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

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

Программа сообщает, что сертификат сохранён в папке /etc/letsencrypt/live/vps.losst.pro/ и вы можете его использовать.

Шаг 5. Настройка виртуального хоста

Если вы посмотрите в папку /etc/letsencrypt/live/vps.losst.pro, то увидите там четыре файла:

  • cert.pem — файл сертификата, его необходимо прописать в параметре SSLCertificateFile;
  • chain.pem — файл цепочки сертификата, обычно прописывается в параметре SSLCertificateChainFile;
  • privkey.pem — приватный ключ сертификата, должен быть прописан в SSLCertificateKeyFile;
  • fullchain.pem — в нём объединено содержимое cert.pem и chain.pem, можно использовать вместо этих обоих файлов.

Для обычного сайта у нас виртуальный хост существует. Осталось создать виртуальный хост для SSL версии. Тут кроме стандартных настроек надо добавить четіре параметра.

SSLEngine on
SSLCertificateFile /путь/к/сертификату.pem
SSLCertificateChainFile /путь/к/сертификату/цепочки.pem
SSLCertificateKeyFile /путь/к/приватному/ключу.pem

sudo vi /etc/apache2/sites-available/vps-losst-ru-ssl.conf

Этой конфигурации достаточно чтобы всё заработало. Затем активируйте этот виртуальный хост:

sudo a2ensite vps-losst-ru-ssl

И не забудьте включить модуль для поддержки SSL:

sudo a2enmod ssl

Проверьте работоспособность открыв домен в браузере:

Шаг 6. Дополнительная настройка

Чтобы добавить больше безопасности можно указать какие протоколы SSL следует использовать. Например, для того чтобы отключить SSLv2 и SSLv3, а также TLS ниже 1.2 добавьте:

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

С помощью параметра SSLCipherSuite можно указать набор шифров, которые стоит использовать:

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

После внесения изменений снова парезапустите Apache.

Шаг 6. Редирект

Не забудьте также настроить редирект на HTTPS с HTTP хоста, для этого просто добавьте такие строчки в файл /etc/apache2/sites-available/vps-losst-ru.conf:

Вам надо будет только заменить vps.losst.pro в двух местах на имя вашего домена.

Шаг 6. Проверка

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

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

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

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

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

sudo letsencrypt renew

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

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

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

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

Не удалось получить сертификат let s encrypt посмотрите журнал для подробностей

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

Выводы

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

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

В этой небольшой статье мы рассмотрели как выполняется настройка SSL Nginx с Lets Encrypt. Как видите, всё вполне выполнимо, несмотря на определённую сложность. А вы уже используете SSL? Планируете использовать? Напишите в комментариях!

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

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