С 1 октября 2021 года закончился срок действия сертификата IdenTrust DST Root CA X3 (одного из основных корневых сертификатов, применяемых в сети), который установлен на многих устройствах.
Из-за этого владельцы ПК на Windows 7, Windows Server 2008 с выключенными обновлениями и Windows XP могут столкнуться с проблемой появления ошибки: «ERR_CERT_DATE_INVALID»,«ERR_DATE_INVALID» и прочими ошибками сертификатов при входе на многие сайты.
Есть два способа решить эту проблему: либо установить новый сертификат, либо установить обновления ОС Windows.
Решение через ручную установку сертификата
Необходимо запустить скачанный файл, на вкладке «Общие» нажать «Установить сертификат».
Выберите расположение «Локальный компьютер» и нажмите «Далее».
Выберите пункт «Поместить все сертификаты в следующее хранилище», нажмите «Обзор», выберите раздел «Доверенные корневые центры сертификации», нажмите «ОК» и «Далее», а в следующем окне – «Готово». При появлении вопросов об установке сертификатов – согласитесь на установку.
После этого перезапустите браузер и вновь попробуйте зайти на необходимый сайт.
Решение через установку обновлений
Для решения ошибки сертификата нужно установить обновления KB3020369 и KB3125574:
Дополнительно
Иногда установка одного лишь IdenTrust DST Root CA X3 может не помочь, так же рекомендуем дополнительно установить следующие корневые сертификаты:
30 сентября 2021 г окончился срок действия корневого сертификата IdenTrust DST Root CA X3. А это главный корневой сертификат Let’s Encrypt, которым подписаны уже более 260 миллионов доменных имен в Интернет.
Let’s Encrypt — это бесплатный, автоматизированный и открытый Центр Сертификации. Это значит, что вы можете для своего сайта установить и автоматизировать обновление SSL сертификата, чтобы ваш сайт работал по HTTPS протоколу. Наш сайт тоже работает с сертификатом Let’s Encrypt.
Событие ожидаемое. Чтобы внезапно все 260 миллионов не перестали открываться в браузерах пользователей, Let’s Encrypt пять лет назад выпустила самоподписанный сертификат ISRG Root X1, который добавили в качестве второго корневого сертификата и образовали альтернативную цепочку.
Самоподписанный сертификат – это сертификат, который формируется без подтверждения стороннего центра сертификации.
На август 2021 эта схема богаче:
За пять лет сертификат ISRG Root X1 должен был распространиться по миру. Производители устройств, приложений и операционных систем должны были добавить этот сертификат в список доверенных корневых центров сертификации.
План был такой, если браузер не сможет проверить подлинность одной цепочки, то перейдёт на альтернативную. Что, собственно, вчера и произошло.
Всё бы хорошо, но не все системы поддерживают новый корневой сертификат ISRG Root X1. Поддержка есть:
С андроидом я так и не понял, что именно будет работать, а что нет. в Android 6.0.1 у меня те сайты, сертификаты которых пошли по цепочке до IdenTrust DST Root CA X3, открылись, несмотря на то, что срок действия сертификата истёк. А те сайты, сертификаты которых пошли по цепочке до самоподписанного ISRG Root X1, не открылись, потому что его нет в списке доверенных.
Соответственно, все системы, которые не доверяют сертификату ISRG Root X1, будут открывать сайты с сертификатом Let’s Encrypt вот так:
- Обладатели старых телевизоров со Smart TV и прочей техники, которые используют Интернет для работы или обновлений.
- Пользователи старых операционных систем.
- Старые приложения Java.
- Ещё что-нибудь старое, в котором корневые сертификаты зашиты намертво.
Что делать владельцам сайтов?
А ничего. Если вам очень нужно, чтобы ваш сайт открывался на старых устройствах, меняйте сертификат на платный, корневые центры которого ещё поддерживается на нужных вам устройствах.
Что делать посетителям сайтов?
Если ваше устройство поддерживает установку сертификатов, то вы можете вручную добавить самоподписанный сертификат ISRG Root X1 в список доверенных корневых центров сертификации:
Вам также может понадобиться промежуточный сертификат Let’s Encrypt R3. И тогда, после перезагрузки, вам наступит счастье:
В связи с санкциями многие иностранные сервисы отказываются выдавать или продлевать сертификаты безопасности для сайтов в домене RU. Возможно, это просто связано с невозможностью произвести оплату за сертификат. К тому же сохраняется риск отзыва уже выданных сертификатов, непонятно, правда, зачем их отзывать, если они сами протухнут через год.
В итоге многие учреждения переходят на использование сертификатов, выдаваемых Министерством цифрового развития, связи и массовых коммуникаций Российской Федерации. Сертификаты пока раздают только юридическим лицам и процесс этот небыстрый. На данный момент выпущено 4883 сертификата.
И вот тут возникает маленькая, но очень большая проблема. Корневой сертификат Минцифры не поддерживается обычными браузерами, сайты с таким сертификатом не будут открываться.
Настройка российских сертификатов в разных ОС
Windows — поддержка работы сайтов с российскими сертификатами
MacOS — поддержка работы сайтов с российскими сертификатами
iOS — поддержка работы сайтов с российскими сертификатами
Android — поддержка работы сайтов с российскими сертификатами
Red Hat Enterprise Linux — поддержка работы сайтов с российскими сертификатами
Устанавливаем корневой сертификат Russian Trusted Root CA в Windows
Качаем корневой сертификат здесь:
Распаковываем. Внутри два файла:
- rootca_ssl_rsa2022.cer — корневой сертификат.
- rootca_ssl_rsa2022.cer.detached.sig — отделённая подпись корневого сертификата, она нам не понадобится.
Нажимаем правой кнопкой на rootca_ssl_rsa2022.cer, «Установить сертификат».
Для применения сертификата для всех пользователей компьютера выбираем «Локальный компьютер», Далее.
OK. Перезагружаем компьютер.
Если посмотреть в оснастку сертификатов локального компьютера, то можно увидеть в доверенных корневых центрах сертификации новый сертификат Russian Trusted Root CA.
Сайты с сертификатами выданными Минцифры теперь будут открываться во всех браузерах. Кроме Mozilla Firefox, у этого браузера своё хранилище сертификатов и корневой сертификат нужно добавлять уже через настройки браузера.
Устанавливаем корневой сертификат Russian Trusted Root CA в Mozilla Firefox
Запускаем Mozilla Firefox. Открываем настройки безопасности.
Устанавливаем обе галки для доверия. OK.
Сайты с сертификатами выданными Минцифры теперь будут открываться в браузере Mozilla Firefox.
Ещё
Сертификаты и инструкции по установки для Android, iOS, MacOS и Windows можно найти здесь:
30 сентября 2021 г окончился срок действия корневого сертификата IdenTrust DST Root CA X3. Вместо него теперь должен использоваться самоподписанный сертификат ISRG Root X1, который добавили в качестве второго корневого сертификата и образовали альтернативную цепочку.
Let’s Encrypt — истёк срок действия корневого сертификата IdenTrust DST Root CA X3
Соответственно, все системы, которые не доверяют сертификату ISRG Root X1, будут открывать сайты с сертификатом Let’s Encrypt вот так:
На моём телефоне с Andriod 6.0.1 Marshmallow сертификат ISRG Root X1 отсутствует в списке доверенных, поэтому сайты с сертификатом Let’s Encrypt у меня перестали открываться.
Можно купить новый телефон, бугагашечки. Можно установить браузер Mozilla Firefox, у него собственный набор доверенных сертификатов, который постоянно обновляется. Но всё-таки хотелось бы, чтобы всё само открывалось без танцев с бубнами в привычном встроенном браузере. И на привычном старом телефоне.
Просмотр сертификатов на Android 6
Посмотрим, какие сейчас используются сертификаты. Нажимаем на значок слева от URL — ⓘ. Открывается окно «Незащищённое подключение».
Для просмотра сертификатов нажимаем ссылку «Данные сертификата».
Сертификат выдан Let’s Encrypt. Срок действия ещё не вышел. Посмотрим промежуточный сертификат, стрелка вниз.
Видно только промежуточный сертификат R3, выбираем.
Этот сертификат выдан DST Root CA X3, срок действия которого, как мы знаем, истёк. Более того, срок сертификата R3 тоже истёк. И на этом браузер останавливается и не доверяет сайту. А всё потому, что проверка пошла по основной цепочке. Альтернативная цепочка не была задействована, потому что сертификат ISRG Root X1 неизвестен Android.
Добавляем ISRG Root X1 в список доверенных сертификатов на Android 6
Первым делом нужно установить на телефон PIN-код или графический код. Android 6.0.1 позволяет устанавливать собственные сертификаты только с блокировкой экрана. При отключении PIN-кода или графического кода персональные сертификаты будут удалены (не проверял). В любом случае, при попытке добавить сертификат вас попросят включить блокировку экрана.
Мотаем вниз и видим нужные нам пункты:
- Сертификаты безопасности
- Сертификаты пользователя
- Установить из памяти
- Удалить учётные данные
Нажимаем Сертификаты безопасности, находим протухший сертификат Digital Signature Trust Co. (DST Root CA X3) и отключаем его, чтобы телефон не пытался использовать эту цепочку.
Скачиваем сертификат ISRG Root X1 и Let’s Encrypt R3 в формате PEM. Я буду ставить оба сертификата.
Нажимаем на сертификат и устанавливаем его. Используется для VPN и приложений.
Второй тоже устанавливаем.
Можно посмотреть подробную информацию о каждом сертификате.
Сертификат безопасности ISRG Root X1 действителен до 2035 года, самоподписанный.
Сертификат безопасности Let’s Encrypt R3 действителен до 2025 года, промежуточный.
Для проверки действительности сертификата используется команда
openssl verify СЕРТИФИКАТ
В разделе «Как создать сертификаты SSL (TLS) для сайтов» мы создали сертификат mydomain.com.crt, попробуем проверить его:
openssl verify mydomain.com.crt
C = US, ST = CA, O = «MyOrg, Inc.», CN = mydomain.com
error 20 at 0 depth lookup: unable to get local issuer certificate
error mydomain.com.crt: verification failed
Верификация провалилась — причина в том, что мы использовали для подписи сертификата приватный ключ от своего собственного CA, который создали чуть ранее.
С помощью опции -CAfile можно указать сертификат доверенного Центра Сертификации:
openssl verify -CAfile rootCA.crt mydomain.com.crt
Как можно увидеть, проверка подлинности прошла успешно:
Чтобы было поинтереснее, возьмём реальные сертификаты сайта и промежуточного центра сертификации:
openssl s_client -showcerts -connect w-e-b.site:443 </dev/null
Вы увидите сертификаты (один или несколько), найдите по полю CN сначала сертификат домена w-e-b.site:
0 s:CN = w-e-b.site
И скопируйте содержимое начиная с ——BEGIN CERTIFICATE—— и заканчивая ——END CERTIFICATE——. Затем сохраните это в файл w-e-b.site.crt.
Затем найдите сертификат центра сертификации и сохраните его в файл x3.crt:
Итак, для наших экспериментов у нас появилось два новых файла: w-e-b.site.crt (сертификат сайта) и x3.crt (сертификат промежуточного Центра Сертификации).
Попробуем проверить действительность сертификата сайта:
openssl verify w-e-b.site.crt
Поскольку сайт открывается нормально и веб браузер показывает, что с сертификатом сайта всё в порядке, то тот факт, что проверка подлинности не пройдена может показаться странным.
Проверим подлинность промежуточного сертификата организации, которая подписала сертификат сайта:
openssl verify x3.crt
Как можно увидеть на скриншоте, с этим сертификатом всё в порядке.
Дело в том, что команда openssl verify сверяет подпись в сертификате с коревыми Центрами Сертификации, чьи сертификаты установлены в операционной системе как доверенные. Мы можем убедиться в этом. Следующая команда покажет организацию, подписавшую сертификат x3.crt:
openssl x509 -in x3.crt -noout -issuer
issuer=O = Digital Signature Trust Co., CN = DST Root CA X3
Имя издателя в поле CN (Common Name) DST Root CA X3.
Убедимся, что сертификат этого CA действительно есть в системе:
Если мы посмотрим, кто выдал сертификат сайта w-e-b.site:
openssl x509 -in w-e-b.site.crt -noout -issuer
То увидим, что это Let’s Encrypt Authority X3.
Посмотрим имя организации в сертификате x3.crt:
openssl x509 -in x3.crt -noout -subject
Имя совпало — это также Let’s Encrypt Authority X3.
То есть в целом цепочка понятна — сертификат w-e-b.site.crt выдан организацией Let’s Encrypt Authority X3, а её полномочия по выдаче сертификатов заверяет DST Root CA X3, которая в операционной системе находится среди доверенных корневых Центрах Сертификации.
Чтобы автоматически выполнить проверку всей цепочки с помощью openssl verify, нам нужно указать промежуточный сертификат после опции -untrusted. Если промежуточных сертификатов несколько, то нужно указать их все — опцию -untrusted можно использовать несколько раз.
openssl verify -untrusted x3.crt w-e-b.site.crt
Опция -show_chain покажет информацию о цепочке сертификатов, которая была построена:
openssl verify -untrusted x3.crt -show_chain w-e-b.site.crt
Опции -verify_hostname ИМЯ-ХОСТА и -verify_ip IP позволяют проверить, действительно ли сертификат выдан для указанного хоста или IP адреса. Чтобы проверка прошла успешно, имя хоста должно быть в Subject Alternative Name или Common Name в subject сертификата. А IP адрес должен быть в Subject Alternative Name в subject сертификата. Пример:
openssl verify -untrusted x3.crt -verify_hostname w-e-b.site w-e-b.site.crt
Следующими тремя командами вы можете проверить, соответствует ли SSL сертификат приватному ключу:
Для SSL сертификата выполните команду вида:
Для приватного ключа RSA выполните команду вида:
Замените ФАЙЛ на имя ваших файлов. Для всего перечисленного выше — SSL сертификата, приватного ключа и запроса на подпись — хеш должен быть одинаковым.
Решение, если у вас с 30. 2021 не открываются сайты https
30 сентября 2021 истек срок действия сертификата DST Root CA X3 Let’s Encrypt. Браузеры Google Chrome, Opera и Edge теперь не могут открыть большинство сайтов https. Лишь Mozilla Firefox работает нормально.
Если у вас установлена не Windows, а иная операционная система, попробуйте обратиться за решением к следующей теме на официальном форуме Let’s Encrypt – https://community.letsencrypt.org/t/help-thread-for-dst-root-ca-x3-expiration-september-2021/149190/3
А для Windows простейшим решением будет загрузить сертификат ISRG Root X1 с официального сайта Let’s Encrypt и вручную импортировать его в хранилище доверенных корневых центров сертификации. Для этого:
1. Загрузите версию “Self-signed DER” сертификата ISRG Root X1 со страницы https://letsencrypt.org/certificates/
2. Откройте скачанный вами файл isrgrootx1.der
3. Импортируйте его в хранилище доверенных корневых центров сертификации следующим образом.
Нажмите “Установить сертификат”:
Выберите “Поместить все сертификаты в следующее хранилище”. Нажмите “Обзор”. Выберите “Доверенные корневые центры сертификации”:
Если появится сообщение с вопросом, ответьте “Да”.
А через командную строку третий шаг можно выполнить так: certutil -ent -addstore Root isrgrootx1.der
Let’s Encrypt и конец срока действия IdenTrust DST Root CA X3
30 сентября 2021 14:01:15 GMT оканчивается срок действия корневого сертификата IdenTrust DST Root CA X3.
Это событие достойно вашего внимания по той причине, что после наступления этого момента ряд устаревших систем перестанут доверять сертификатам, выпущенным центром сертификации Let’s Encrypt. С учётом того, что на текущий момент Let’s Encrypt предоставляет бесплатные криптографические сертификаты примерно для 250 миллионов доменных имен, а «устаревшие системы» — это порой системы возрастом всего 5-6 лет, вряд ли окончание срока действия сертификата DST Root CA X3 пройдёт для всех гладко и незаметно. В чём причина, кого конкретно это затронет, и что можно сделать?
Немного теории и истории
Не углубляясь в детали, пару слов для неспециалистов, почему окончание срока действия сертификата DST Root CA X3 повлияет на сертификаты, выпущенные Let’s Encrypt. У каждой системы, проверяющей сертификат на валидность, есть своё хранилище доверенных корневых сертификатов. Система при проверке будет доверять сертификатам, которые подписаны с использованием закрытого ключа одного из этих корневых сертификатов. Сами корневые сертификаты как правило имеют длительные сроки действия, меняются редко и не используются при формировании сертификатов конечного субъекта (в данном случае, сертификатов для доменных имен), вместо этого инфраструктура открытых ключей, предполагает использование цепочек доверия — корневые сертификаты применяются для подписания промежуточных сертификатов, а уже с использованием них подписываются сертификаты конечного субъекта (сертификаты для доменов). При этом, для того, чтобы система доверяла конечному сертификату, она должна быть способна проследить всю цепочку от этого сертификата до одного из корневых сертификатов, которым она доверяет.
После появления проекта Let’s Encrypt, его корневой сертификат ISRG Root X1 (как и любой новый корневой сертификат) не мог быстро попасть в хранилища доверенных сертификатов заметного количества систем. При этом для успешного функционирования проекта выданным сертификатам с самого начала должно было доверять максимальное количество систем «из коробки» (без дополнительных действий со стороны пользователей этих систем). В связи с этим, для сертификатов Let’s Encrypt стала использоваться цепочка доверия, ведущая к корневому сертификату DST Root CA X3, который признается большинством систем:
Ошибка сертификата при входе на сайты с Windows 7 или XP после 01
Из-за этого владельцы ПК на Windows 7, Windows Server 2008 с выключенными обновлениями и Windows XP могут столкнуться с проблемой появления ошибки: «ERR_CERT_DATE_INVALID» или «ERR_DATE_INVALID» при входе на многие сайты.
Установка сертификата
Необходимо запустить скачанный файл, на вкладке «Общие» нажать «Установить сертификат».
Выберите расположение «Локальный компьютер» и нажмите «Далее».
Выберите пункт «Поместить все сертификаты в следующее хранилище», нажмите «Обзор», выберите раздел «Доверенные корневые центры сертификации», нажмите «ОК» и «Далее», а в следующем окне – «Готово». При появлении вопросов об установке сертификатов – согласитесь на установку.