Відкликання сертифікатів

Останнє оновлення: | Переглянути всю документацію

Примітка: Англійська версія була оновлена з моменту перекладу () Переглянути англійською

Якщо відповідний особистий ключ сертифіката більше не є безпечний, слід скасувати цей сертифікат. Це може трапитись з кількох різних причин. Наприклад, ви можете випадково поділитись особистим ключем на загальнодоступному веб-сайті; хакери можуть скопіювати особистий ключ з ваших серверів; або хакери можуть взяти тимчасовий контроль над вашими серверами або налаштуванням DNS і використовувати це для перевірки та видачі сертифіката від якого вони мають особистий ключ.

Коли ви скасовуєте сертифікат Let’s Encrypt, то Let’s Encrypt опублікує цю інформацію про скасовування Протокол стану онлайн-сертифікату (OCSP), та деякі браузери будуть перевіряти OCSP, щоб побачити чи вони можуть довіряти сертифікату. Зверніть увагу, що OCSP має деякі фундаментальні проблеми, тому не всі браузери будуть виконувати цю перевірку. Тим не менш, анулювання сертифікатів, які відповідають зламаним особистим ключам є важливою практикою, яка вимагається для Let’s Encrypt Угода передплати.

Щоб скасувати сертифікат Let’s Encrypt, ви будете використовувати ACME API, ймовірно через ACME клієнта, наприклад Certbot. Вам потрібно буде довести Let’s Encrypt, що ви уповноважені скасувати сертифікат. Існує три способи зробити це:

З облікового запису, який видав сертифікат

Якщо вам спочатку видали сертифікат, і ви все ще маєте контроль облікового запису, який ви використовували для його оформлення, ви можете скасувати його за допомогою свого облікового запису. Сентбот спробує це зробити за умовчуванням. Наприклад:

certbot revoke --cert-path /etc/letsencrypt/archive/${YOUR_DOMAIN}/cert1.pem --reason keycompromise

Використання приватного ключа сертифіката

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

Використовуючи цей метод, спочатку потрібно завантажити сертифікат, який буде скасовано. Let’s Encrypt реєструє всі сертифікати до журналів Certificate Transparency, щоб ви могли знаходити та завантажувати сертифікати з монітора журналу, як наприклад crt.sh.

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

certbot revoke --cert-path /PATH/TO/cert.pem --key-path /PATH/TO/key.pem --reason keycompromise

Використання іншого авторизованого облікового запису

Якщо хтось видав сертифікат після компрометації вашого розміщення або вашого DNS, ви захочете скасувати цей сертифікат, як тільки ви відновите контроль. З метою скасування сертифікату, Let’s Encrypt знадобиться переконатися, що ви контролюєте доменні імена у цьому сертифікаті (інакше люди можуть скасувати сертифікати один одного без дозволу)! Щоб перевірити цей елемент керування, Let’s Encrypt використовує ті ж методи, які він використовує для перевірки елементів видачі: ви можете помістити значення у DNS TXT запис або розмістити файл на сервері HTTP. Як правило, клієнт ACME обробляє це за вас. Зауважте, що більшість клієнтів ACME поєднують перевірку та видачу, тож єдиний спосіб запитати підтвердження – це спроба видачі. Потім ви можете скасувати отриманий сертифікат, або просто знищити особистий ключ, якщо ви не хочете. Якщо ви хочете уникнути видачі a сертифіката, ви можете включити неіснуюче доменне ім’я у свій командний рядок, що призведе до помилки при видачі, коли ще перевірятиме інші, існуючі доменні імена. Для цього запустіть:

certbot certonly --manual --preferred-challenges=dns -d ${YOUR_DOMAIN} -d nonexistent.${YOUR_DOMAIN}

І дотримуйтесь інструкцій. Якщо ви бажаєте перевіряти за допомогою HTTP, а не DNS, то замініть прапор --preferred-challenges на --preferred-challenges=http.

Після того, як ви підтвердите контроль над усіма доменними іменами в потрібному сертифікаті для скасування, ви можете завантажити сертифікат із crt.sh, а потім перейти до скасування сертифіката, так ніби ви його видали:

certbot revoke --cert-path /PATH/TO/downloaded-cert.pem --reason keycompromise