Youtubezilla.ru

Мастер бытовой техники
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

SSL cертификат Let s Encrypt X3 истекает сегодня

SSL cертификат Let’s Encrypt X3 истекает сегодня

Ошибка установки SSL-соединения с сертификатом Let’s Encrypt30-09-2021

Начиная с сегодняшнего дня, 30 сентября 2021 года при попытке соединения с сервером по шифрованным протоколам SSL/TLS могут возникать ошибки:

SSL error 0x80090325 Цепочка сертификатов выпущена центром сертификации, не имеющим доверия.

или другая аналогичная, сообщающая о невозможности установки защищённого соединения. Причина заключается в истечение сегодня срока действия корневого цифрового сертификата IdenTrust DST Root CA X3, которым подписаны сертификаты от популярного удостоверяющего центра (УЦ) Let’s Encrypt. Этим УЦ выпущено множество SSL сертификатов (более чем для 250 миллионов доменных имён), используемых в сети на веб-сайтах, почтовых серверах и других сервисах. Так как срок действия сертификата действителен не позднее 30 сентября 2021 14:01:15 GMT, после этой даты устройства и программы более не могут доверять ему и соединения не будут устанавливаться.

Для решения проблемы Let’s Encrypt уже более 5 лет использует подпись корневым сертификатом ISRG Root X1, действующим до 2035 года. Однако, устройства и операционные системы, не получающие обновления цепочки сертификатов, могут не иметь его в списке доверенных и столкнутся с ошибками SSL соединения. Список такого ПО и операционных систем:

  • Android до версии 7.1.1;
  • Mozilla Firefox до 50.0;
  • MacOS 10.12.0 и старше;
  • Windows до XP Service Pack 3;
  • iOS-устройств до версии iOS 10;
  • OpenSSL 1.0.2 и ниже;
  • Ubuntu до версий 16.04;
  • Debian 8 и старше.

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

Почему бесплатный сертификат?

Есть несколько видов SSL сертификатов. Чем круче — тем больше компенсация вам на случай, если кто-то взломает соединение, и еще в браузере будет писаться название вашей компании.

Для малого бизнеса это совершенно не нужно. Все, что нам нужно – самый простой сертификат(Essential). Он всего лишь позволяет установить защищенное соединение с вашим сайтом и удостовериться, что посетитель на нем.

Так почему же бесплатный? Потому что покупая этот самый простой сертификат за деньги вы платите за воздух. Никаких сложных вычислений не происходит. Все делается автоматически. Даю зуб, что на сервере за 300 руб/мес. можно сгенерировать сертификаты для всего Рунета максимум за 1 месяц, если не 1 день.

А почему же тогда их продают за деньги, спросите вы? Да просто потому что это халявные деньги. На официальном сайте Комодо они просят $76 в год минимум. На другом же сайте можно найти их же сертификат за $8. Вообще, они могли бы его и бесплатно отдать, но 76 баксов то не лишние 😉

Читайте так же:
Как восстановить удаленные контакты телефонной книги на Андроид устройстве

Минусы платных сертификатов:

  1. Платите деньги за воздух и поощряете продавцов воздуха
  2. Будете платить еще в 10 раз больше денег если вам нужен сертификат для субдоменов (потому что потребуется другой сертификат — Wildcard или нужно покупать по сертификату на каждый поддомен)

В любом случае не платите за них более чем $8 в год.

Минусы бесплатных сертификатов:

  1. Не работают в старых браузерах и операционных системах(там где не поддерживается SNI)

Эту проблему кстати можно достаточно легко решить, просто не включая SSL для этих старых браузеров/ОС. Если вам кто-то будет настраивать это или вы сами, то вот ссылка (правило для .htaccess).

Кому нужны мои данные, и каковы последствия?

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

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

В худшем, украдут деньги или чего ещё.

Вот так выглядит сайт, у которого истек срок действия SSL-сертификата, это опасный сайт:

Сайт не незащищенный SSL-сертификатом

Вот так выглядит сайт, у которого SSL-сертификат надежно защищает ваши данные:

Сайт защищенный SSL-сертификатом

Виды SSL-сертификатов

Различают 3 основных вида SSL-сертификатов.

  1. DV (Domain Validation) — валидация домена. Свидетельствует о том, что человек гарантированно находится на сайте, по которому попал через ввод доменного имени. Недостаток этого вида — с его помощью нельзя подтвердить данные о владельце веб-сайта.
  2. OV (Organization Validation) — валидация организации и домена. Верифицирует не только домен, но и сведения об организации, которая владеет ресурсом. Достоверность информации проверяется по регистрационным данным юрлица, которые указываются при оформлении сертификата. Этот вид сертификата является одним из самых востребованных среди пользователей.
  3. EV (Extended Validation) — для расширенной валидации организации и домена. Является предпочтительным вариантом для проектов с высокой приватностью данных (например, если на сайте будут проводиться денежные операции). Предполагает усиленную верификацию данных владельца сайта с целью предотвращения их фальсификации.

Сертификаты всех упомянутых видов делают возможным шифрование трафика между сайтом и браузером. Также существуют следующие функции:

  • WildCard — подтверждает домен и все его субдомены;
  • SAN — верифицирует домены по установленному при получении списку.

Мы предлагаем своим клиентам SSL-сертификаты от двух известных центров: Sectigo и Thawte. Вы можете заказать Sectigo Positive SSL, Sectigo Essential SSL Wildcard (для всех поддоменов) и Thawte EV SSL (расширенная валидация). Заказ осуществляется из панели управления. Теперь вы знаете, что такое SSL-сертификаты и зачем их применяют. Спасибо, что дочитали!

Читайте так же:
Команда "Масштаб" — изменение масштаба объектов в AutoCAD

Как получить такой сертификат?

Вариантов и инструкций в Интернете достаточно много. В том числе у нас на вики в статье » Алиса управляет Умным домом через Node-RED».

В следующих разделах — краткие инструкции по самым популярным сервисам:

Lets’ Encrypt и certbot

Потребуется установить программу certbot. Под *nix- системами это сделать проще, но под Windows тоже не потребуется сверхъестественных усилий.

Предположим, что certbot у вас установлен. Что дальше? Запускаем несколько консольных команд.

Если опасаетесь, что что-то не так и хотите сначала потренироваться, добавьте опцию —dry-run (режим эмуляции для отладки ошибок)

После успешной генерации сертификата у вас появятся 4 файла (их расположение также сильно зависит от вашей операционной системы):

  1. cert.pem (конечный сертификат),
  2. chain.pem (цепочка доверия от корневого сертификата, не включающая конечный),
  3. fullchain.pem (нужная нам полная цепочка, включая конечный сертификат, по сути это сложение cert.pem + chain.pem),
  4. privkey.pem (ваш приватный ключ, который никому нельзя ни показывать, ни отсылать).

Для веб-сервера необходимы два из них: fullchain.pem и privkey.pem.

Ещё несколько полезных команд certbot

Проверка и обновление сертификатов (полезно поставить запуск этой команды по расписанию):

Для проверки и обновления также есть тестовый режим (чтобы убедиться. что ваши домены будут обновляться):

Добавление новых доменов и поддоменов к сертификату:

Изменение адреса администратора:

SSL For Free

Получить сертификат через онлайн-сервис намного быстрее и проще, ничего устанавливать не нужно:

  1. Регистрация на сайте https://sslforfree.com/
  2. Выбор настроек (обычно ничего трогать не нужно, просто жмите «Next Step»)
  3. Подтверждение прав на домен, для которого получаете сертификат, любым из способов:
    • на почту его владельца (список готовый, посторонний адрес вписать не получится) — вам должен быть доступен один из перечисленных email.
    • изменением полей DNS (CNAME) — для новичков этот способ самый запутанный, но не требует доступности почты и http.
    • скачиванием подтверждающего файла и размещением его в подпапке сайта — к домену должен быть http-доступ из Интернета в момент проверки.
  4. После подтверждения останется выбрать формат: предлагается список шаблонов (Default, Tomcat, AWS, cPanel, Google App, Heroku. nginx, Plesk, итд) — но во всех случаях, кажется, скачивается идентичный архив.

Сертификат готов, но. сервис SSL For Free создаёт три файла:

  • ca_bundle.crt (цепочка, исключая конечный сертификат)
  • certificate.crt (сам конечный сертификат)
  • private.key (ваш приватный ключ, который никому нельзя ни показывать, ни отсылать).

Поэтому fullchain мы склеим вручную из двух первых файлов (сначала certificate.crt, затем ca_bundle.crt), и назовём его fullchain.crt (имена на самом деле могут быть любыми, но принято — и нужно — использовать «говорящие» названия: fullchain.crt/fullchain.pem, или domain.ca-bundle)

Читайте так же:
Как с компьютера отправить фото на WhatsApp

Сделать это можно как консольными командами, так и в обычном Блокноте Windows. Пример консольной команды:

(предполагается, что «domain.crt» — конечный сертификат домена, затем по восходящей перечислены все промежуточные файлы — их может быть один или несколько — и в самом конце корневой сертификат).

Серверу отдаём, соответственно, fullchain.crt и private.key.

Немного паранойи

Принцип работы SSL-шифрования

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

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

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

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

Как создать свой собственный центр сертификации SSL для локальной HTTPS-разработки

Локальная настройка HTTPS может стать непростой задачей. Даже если вы и разберетесь с самоподписанными сертификатами, вы все равно можете столкнуться с ошибками приватности в браузере. В данной статье мы рассмотрим создание своего удостоверяющего центра (Certificate Authority, или кратко CA) для локальных серверов, чтобы вы могли без проблем запускать HTTPS-сайты.

Зачем нужен локальный HTTPS?

Почему бы просто не использовать обычный HTTP локально? Дело в том, что если ваш рабочий сайт поддерживает только HTTPS, а вы ведете локальную разработку по HTTP, то в таком случае ваши среды разработки и продакшна будут не идентичны. К примеру, моя среда разработки для этого сайта представляет собой Ubuntu-сервер на виртуальной машине VMware под Mac. Продакшн-сайт – это Ubuntu-сервер, работающий на Linode с практически идентичной конфигурацией.

Ваша среда разработки должна максимально точно соответствовать вашей рабочей среде (продакшну). Когда этого нет, вы навлекаете на себя массу проблем, которые могут возникнуть совершенно неожиданно. Поддержка HTTP-сайта, когда ваш рабочий сайт запущен по HTTPS – это ненужный риск.

Попытки получить SSL-сертификат для работы с локальным сервером – так себе подход. Исключение: использование автоматизации по типу Valet.

Если вы когда-либо пытались запускать свой HTTPS-сайт локально, вы, вероятно, видели нечто подобное:

Раньше обходным путем было создание самоподписанного сертификата и его последующее использование. Годами я использовал для этого MAMP Pro. К сожалению, сейчас это не получится сделать. Современный подход – создание своего собственного центра сертификации (CA).

Читайте так же:
Рисование с помощью группы инструментов «Перо»

Как это работает

Чтобы запросить SSL-сертификат у удостоверяющего центра, такого как Verisign или GoDaddy, вам нужно отправить ему CSR-запрос (Certificate Signing Request). Взамен вы получаете от удостоверяющего центра сертификат, подписанный с использованием его корневого сертификата и приватного ключа. Все браузеры имеют копию корневого сертификата Verisign, потому браузер может проверить, был ли ваш сертификат подписан доверенным центром сертификации.

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

Становимся (крошечным) удостоверяющим центром

Чтобы стать удостоверяющим центром, ничего особенно сложного делать не придется. Требуются всего лишь две команды. Сначала мы генерируем наш приватный ключ:

Нам будет предложено ввести кодовую фразу, которую я рекомендую хранить в безопасности. Кодовая фраза (пароль) обезопасит вас от злоумышленников, которые могут перехватить ваш приватный ключ и в итоге создать свой корневой сертификат. Результат должен выглядеть так:

Теперь мы генерируем корневой сертификат:

Нам будет предложено ввести кодовую фразу для приватного ключа, после чего пойдет ряд вопросов. Как на них отвечать – не так уж и важно. Все это будет отражаться затем в информации о сертификате, которая вам вряд ли потребуется. Я предлагаю задать в Common Name что-то такое, что будет понятно вам, чтобы потом распознавать свой корневой сертификат в списке других сертификатов. Это единственное, что имеет значение.

Теперь у вас должно быть два файла: myCA.key (ваш приватный ключ) и myCA.pem (ваш корневой сертификат).

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

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

Устанавливаем корневой сертификат

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

Добавляем корневой сертификат к macOS Keychain

Через CLI:

Через UI:

  1. Открываем приложение macOS Keychain.
  2. Выбираем File > Import Items…
  3. Выбираем свой приватный ключ (myCA.pem, к примеру).
  4. Ищем сертификат, отвечающий Common Name.
  5. Делаем двойной клик по корневому сертификату в списке.
  6. Раскрываем секцию Trust.
  7. Меняем «When using this certificate:» на «Always Trust»
  8. Закрываем окно сертификата.
  9. Вводим пароль (или сканируем палец).
  10. Готово.
Читайте так же:
Бесплатные программы для Windows скачать бесплатно

Добавляем корневой сертификат в iOS

Если вы хотите добавить корневой сертификат на свои устройства под iOS, вы можете сделать это следующим образом:

  1. Пересылаем корневой сертификат себе по email, чтобы получить к нему доступ с iOS-устройства.
  2. Кликаем по вложению в письме.
  3. Переходим в приложение settings и выбираем ‘Profile Downloaded’.
  4. Щелкаем по install.
  5. Как только установка будет выполнена, переходим обратно на страницу Settings.
  6. Переходим в раздел “General” > “About”.
  7. Прокручиваем в самый низ и щелкаем по Certificate Trust Settings.
  8. Включаем свой корневой сертификат в разделе ENABLE FULL TRUST FOR ROOT CERTIFICATES.

Создаем подписанные своим удостоверяющим центром сертификаты для сайтов в разработке

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

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

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

Файл конфигурации требуется для задания расширения Subject Alternative Name (SAN), которое можно видеть в следующей секции сертификата:

Конфигурационный файл содержит следующее:

Мы будем выполнять команду openssl x509, поскольку, как я понимаю, она необходима для выполнения подписи с помощью корневого сертификата и приватного ключа. Я нашел пример конфигурационного файла на Stack Overflow.

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

В итоге у меня есть три файла: dev.deliciousbrains.com.key (приватный ключ), dev.deliciousbrains.com.csr (CSR-запрос) и dev.deliciousbrains.com.crt (подписанный сертификат).

Теперь я могу настроить свой веб-сервер с помощью приватного ключа и сертификата. Если вы используете Linux-сервер, то вы можете взять инструкции из следующей статьи по ссылке. Если вы работаете с MAMP, то тогда вы можете выбрать файлы сертификата и ключа через UI:

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

Shell-скрипт

Чтобы ускорить процесс, вы можете взять следующий Shell-скрипт, который вы можете настроить под свои цели:

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector