Останнє оновлення:
Метою 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 видає один чи кілька наборів перевірок, що мають бути проведені. Існує кілька способів, за допомогою яких агент може підтвердити контроль над доменом. Наприклад, ЦС надає агенту вибір серед таких способів:
- Створюючи додатковий DNS запис для
example.com
, чи - Створюючи HTTP сторінку на
http://example.com/
, з вказаною URI адресою
Поряд із перевірками, ЦС Let’s Encrypt також надає одноразовий пароль, який агент має підписати своїм приватним ключем, підтверджуючи контроль над парою ключів.
Програмне забезпечення агента виконує одну із запропонованих перевірок. Скажімо, він може виконати друге завдання зазначене вище, створивши файл на вказаному шляху на сайті http://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 і повертає його агентові. Центр сертифікації також надсилає сертифікат до численних публічних журналів Прозорості сертифікатів (CT). Дивіться тут для більш детальної інформації.
Процес відкликання сертифікату працює аналогічно. Агент підписує запит на відкликання за допомогою авторизованої пари ключів для example.com
і ЦС Let’s Encrypt підтверджує авторизацію запиту. Якщо так, то він публікує інформацію про відкликання у звичайних каналах відкликання (тобто OCSP), щоб сторони, яким довіряють, наприклад, браузери, знали, що їм не слід приймати відкликаний сертифікат.