2.9.2.5. Проблема роботи сертифіката Let's Encrypt на старих пристроях

Увага!

Виникла ситуація ніяк не впливає на рівень безпеки сертифікатів Let's Encrypt.

30 вересня 2021 року закінчився термін дії кореневого сертифіката DST Root CA X3. В результаті застарілі пристрої, які давно не отримували оновлення та не підтримують новий кореневий сертифікат ISRG Root X1, перестали довіряти старому сертифікату і при відвідуванні сайтів, які використовують сертифікати від Let's Encrypt, видають попередження або не можуть встановити захищене з'єднання.

До застарілих належать пристрої та операційні системи віком від 5 років, серед яких:

  • Windows XP до SP3 (а також для SP3 та Windows 7, якщо не здійснювалося автоматичне оновлення кореневих сертифікатів).
  • MacOS до 10.12.1.
  • iOS до 10
  • Android до 2.3.6 (при цьому доступ до сервісів ще може бути через особливості перевірки кореневих сертифікатів, а версії до 7.1.1 перестануть підтримувати сертифікат в 2024 році).
  • Ubuntu до 16:04.
  • Debian до 8.
  • Sony PlayStation 3 та 4 з прошивками до 5.00.
  • Старі моделі смарт-телевізорів та розумних домашніх пристроїв.
  • Пристрої, які використовують OpenSSL версію 1.0.x.

Вирішити проблему можна кількома способами. Найкращим рішенням буде оновлення програмного забезпечення до останніх версій, де вже включена підтримка нового кореневого сертифіката. Вживати заходів щодо вирішення проблеми варто тільки в тому випадку, якщо це необхідно, наприклад, досить велика частина аудиторії сервісу використовує застаріле ПЗ і вони критичні для проекту. В іншому випадку варто знехтувати поточною ситуацією.

З боку клієнта можна:

  1. Вручну встановити кореневий сертифікат ISRG Root X1, якщо він відсутній у сховищі системи або ПЗ.
  2. Видалити застарілий кореневої сертифіката DST Root CA X3. Наявність застарілого кореневого сертифіката може заважати нормальній роботі з сервісами, які використовують сертифікати Let's Encrypt.

Увага! Вирішити проблему таким способом можна не на всіх пристроях.

Windows 7

В операційній системі Windows 7 ланцюжок кореневих сертифікатів повинна була оновитися, якщо включені оновлення операційної системи, в іншому випадку кореневий сертифікат необхідно встановити самостійно, виконавши такі дії:

  1. Скачайте кореневий сертифікат ISRG Root X1 з сайту Let's Encrypt в форматі der.
  2. Запустіть завантажений файл і дозвольте його відкриття, натиснувши «Відкрити».
  3. У вікні натисніть «Install Cerificate»:
  4. Виберіть, для кого необхідно встановити сертифікат, і натисніть «Далі».
  5. Виберіть пункт «Place all certificates in the following store» і натисніть «Browse»:
  6. Виберіть сховище «Trusted Root Certification Authorities» і натисніть «OK»:
  7. Натисніть «Next», Перевірте коректність обраних даних та натисніть «Finish».
  8. Перевірте роботу сервісів, з якими виникали проблеми доступу.

Debian/Ubuntu

  1. Для перевірки наявності кореневого сертифіката в списку довірених, виконайте в терміналі команду:
    awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep "ISRG Root X1"

    Якщо у висновку команди буде фігурувати subject=C = US, O = Internet Security Research Group, CN = ISRG Root X1, То немає необхідності виконувати будь-які дії, а якщо немає, то пропустіть цей крок.

  2. Виконайте в терміналі команду:
    curl -k https://letsencrypt.org/certs/isrgrootx1.pem.txt | sudo tee /usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt ; sudo echo "mozilla/ISRG_Root_X1.crt" >> /etc/ca-certificates.conf ; sudo update-ca-certificates
  3. Перевірте роботу сервісів, з якими виникали проблеми доступу.

CentOS

  1. Для перевірки наявності кореневого сертифіката в списку довірених, виконайте в терміналі команду:
    awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-bundle.crt | grep "ISRG Root X1"

    Якщо у висновку команди буде фігурувати subject=C = US, O = Internet Security Research Group, CN = ISRG Root X1, То немає необхідності виконувати будь-які дії, а якщо немає, то пропустіть цей крок.

  2. Виконайте в терміналі наступні команди:
    trust dump --filter "pkcs11:id=%c4%a7%b1%a4%7b%2c%71%fa%db%e1%4b%90%75%ff%c4%15%60%85%89%10" | openssl x509 | sudo tee /etc/pki/ca-trust/source/blacklist/DST-Root-CA-X3.pem
    sudo update-ca-trust
  3. Перевірте роботу сервісів, з якими виникали проблеми доступу.

OpenSSL 1.0.x

Якщо в системі використовується застаріла версія OpenSSL, то необхідно видалити з довірених кореневих сертифікатів застарілий наступним чином:

  • Для Debian / Ubuntu відредагуйте файл /etc/ca-certificates.conf встановивши символ ! на початку рядка mozilla/DST_Root_CA_X3.crt і виконайте команду:
    update-ca-certificates

Рішення проблеми з боку сервера можливо тільки шляхом використання інших сертифікатів.

  1. Щоб використовувати інший сертифікат, необхідно його придбати в одному з центрів сертифікації або у їх партнера. При виборі нового сертифіката важливо враховувати, які функції він надає і для яких сфер підходить. Для прикладу нижче наведено деякі відомі центри сертифікації:
  2. Встановіть отриманий сертифікат для сайту.
  3. Після установки сертифіката дочекайтеся поновлення кеш інформації, що відбувається зазвичай протягом 15 хвилин, і перевірте роботу сайту на проблемному пристрої.
Зміст