Як це працює

Останнє оновлення:

Метою Let’s Encrypt та протоколу ACMEl є можливість налаштувати сервер HTTPS, який може автоматично отримувати сертифікат надійного браузера без будь-якого втручання людини. Це відбувається завдяки агенту керування сертифікатами запущеному на веб-сервері.

Зрозуміти, як працює дана технологія, допоможе процес налаштування https://example.com/ за допомогою агента управління сертифікатами, який підтримує Let’s Encrypt.

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

Перевірка домену

Let’s Encrypt ідентифікує адміністратора сервера за допомогою відкритого ключа. Під час першої взаємодії з Let’s Encrypt, програмне забезпечення агента генерує нову пару ключів і підтверджує ЦС Let’s Encrypt, що цей сервер контролює один або декілька доменів. Це схоже на традиційний процес створення облікового запису у ЦС і додавання доменів до цього облікового запису.

Щоб розпочати процес, агент запитує ЦС Let’s Encrypt, що потрібно зробити для доведення контролю над example.com. Залежно від домена, ЦС Let’s Encrypt видає один чи кілька наборів перевірок, що мають бути проведені. Існує кілька способів, за допомогою яких агент може підтвердити контроль над доменом. Наприклад, ЦС надає агенту вибір серед таких способів:

Поряд із перевірками, ЦС Let’s Encrypt також надає одноразовий пароль, який агент має підписати своїм приватним ключем, підтверджуючи контроль над парою ключів.

Запит перевірок для домену example.com

Програмне забезпечення агента виконує одну із запропонованих перевірок. Скажімо, він може виконати друге завдання зазначене вище, створивши файл на вказаному шляху на сайті http://example.com. Агент також підписує наданий одноразовий пароль своїми приватними ключами. Виконавши ці кроки, агент повідомляє ЦС про готовність до завершення перевірки.

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

Запит авторизації для дій від імені example.com

Якщо цей підпис правильний, і усі перевірки здійснені, то агент, ідентифікований відкритим ключем, має право керувати сертифікатами для доменаexample.com. Пара ключів (відкритий і приватний), що використовувалася агентом при перевірці прав на домен, називається “авторизованою парою ключів” для example.com.

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

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

Щоб отримати сертифікат для домену, агент створює PKCS#10 запит та просить ЦС Let’s Encrypt видати сертифікат для example.com із зазначеним відкритим ключем. Зазвичай, CSR включає підпис приватним ключем, що відповідає відкритому ключеві у CSR. Агент також підписує весь CSR авторизованою парою ключів для example.com, що дає змогу ЦС Let’s Encrypt перевірити автентичність CSR.

Після отримання запиту, ЦС Let’s Encrypt перевіряє обидва підписи. Якщо все добре, ЦС видає сертифікат для example.com з публічним ключем з CSR і повертає його агентові.

Запит сертифікату для example.com

Процес відкликання сертифікату працює аналогічно. Агент підписує запит на відкликання за допомогою авторизованої пари ключів для example.com і ЦС Let’s Encrypt підтверджує авторизацію запиту. Якщо автентифікація пройшла успішно, інформація про відкликання публікується у звичайні канали відкликання (тобто OCSP), щоб відповідні сторони, такі як браузери, могли знати, що вони не повинні приймати відкликаний сертифікат.

Запит на відкликання сертифікату для example.com