2.15.1.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 до 7.1.1.
- Ubuntu до 16.04.
- Debian до 8.
- Sony PlayStation 3 і 4 з прошивками до 5.00.
- Старі моделі смарт-телевізорів і розумних домашніх пристроїв.
- Пристрої, що використовують OpenSSL версії 1.0.x.
Способи вирішення проблеми
Вирішити проблему можна декількома способами. Найкращим рішенням буде оновлення ПЗ до останніх версій, де вже включена підтримка нового кореневого сертифіката. Вживати заходів для вирішення проблеми варто тільки в тому випадку, якщо це необхідно, наприклад, досить велика частина аудиторії сервісу використовує застаріле ПЗ і вони є критичними для проекту. В іншому випадку варто знехтувати поточною ситуацією.
З боку клієнта
З боку клієнта можна:
- Вручну встановити кореневий сертифікат ISRG Root X1, якщо він відсутній у сховищі використовуваної системи або ПЗ.
- Видалити застарілий кореневий сертифікат DST Root CA X3. Наявність застарілого кореневого сертифіката може заважати нормальній роботі з сервісами, що використовують сертифікати Let's Encrypt.
⚠️ Вирішити проблему таким способом можна не на всіх пристроях.
Windows 7
В операційній системі Windows 7 ланцюжок кореневих сертифікатів мав оновлюватися, якщо увімкнено оновлення операційної системи, в іншому випадку кореневий сертифікат необхідно встановити самостійно, виконавши наступні дії:
- Запустіть завантажений файл і дозвольте його відкриття, натиснувши «Відкрити».
- У вікні, що з'явилося, натисніть «Install Cerificate»:
- Виберіть, для кого необхідно встановити сертифікат, і натисніть «Далі».
- Виберіть пункт «Place all certificates in the following store» і натисніть «Browse»:

- Виберіть сховище «Trusted Root Certification Authorities» і натисніть «OK»:

- Натисніть «Next», перевірте правильність вибраних даних і натисніть «Finish».
- Перевірте роботу сервісів, з якими виникали проблеми доступу.
Debian/Ubuntu
- Для перевірки наявності кореневого сертифіката в списку довірених, виконайте в терміналі команду:
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, то немає необхідності виконувати будь-які дії, а якщо ні, то перейдіть до наступного кроку. - Виконайте в терміналі команду:
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 - Перевірте роботу сервісів, з якими виникали проблеми доступу.
CentOS
- Для перевірки наявності кореневого сертифіката в списку довірених, виконайте в терміналі команду:
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, то немає необхідності виконувати будь-які дії, а якщо ні, то перейдіть до наступного кроку. - Виконайте в терміналі наступні команди:
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 - Перевірте роботу сервісів, з якими виникали проблеми доступу.
OpenSSL 1.0.x
Якщо в системі використовується застаріла версія OpenSSL, то необхідно видалити з довірених кореневих сертифікатів застарілий наступним чином:
- Для Debian/Ubuntu відредагуйте файл
/etc/ca-certificates.conf, встановивши символ!на початку рядкаmozilla/DST_Root_CA_X3.crt, і виконайте команду:update-ca-certificates
З боку сервера
Вирішення проблеми з боку сервера можливе тільки шляхом використання інших сертифікатів.
- Щоб використовувати інший сертифікат, необхідно його придбати в одному з центрів сертифікації або у їхнього партнера. При виборі нового сертифіката важливо враховувати, які функції він надає і для яких сфер підходить. Для прикладу нижче наведено деякі відомі центри сертифікації:
- Встановіть отриманий сертифікат для сайту.
- Після встановлення сертифіката дочекайтеся оновлення кешованої інформації, що зазвичай відбувається протягом 15 хвилин, і перевірте роботу сайту на проблемному пристрої.