Перевірка ssl сертифікату на відповідність кореневого

Отже, у нас, наприклад, є сертифікат для установки, виданий кимось, хто не надав кореневий сертифікат.

Нам потрібно, щоб при використанні цього сертифіката не було помилок. Таких, наприклад, як ця:

error 20 at 0 depth lookup: unable to get local issuer certificate

Нам не вистачає правильно сформованої ланцюжка кореневих сертифікатів.

Вихідний сертифікат перевіряється за першим сертифікату в цьому ланцюжку, а далі той перший перевіряється по другому в ланцюжку і т.д. поки не зайдемо в довірений кореневий сертифікат, що зберігається в локальному сховищі сертифікатів (для Debian це / etc / ssl / certs /).

Для початку, дізнаємося, хто видав наш сертифікат:

Для прикладу візьмемо груповий серіфікат * .google.com.

Можна завантажити його ось так або ж іншим шляхом:

Перевіримо тільки що завантажений сертифікат:

Пройдемо по посиланню емітента і отримаємо перший сертифікат в майбутньої ланцюжку:

Значить другого сертифіката в ланцюжку не буде. Хто ж видав сертифікат емітенту?

Ага, значить цей кореневий сертифікат повинен лежати в нашому сховищі. перевіримо:

Спробуємо перевірити з директивою CApath на поточну директорію, щоб переконатися, що це саме той сертифікат:

Очікувана, помилка. Ну що ж, відтворимо шматочок сховища:

Порахуємо hash і зробимо символьне посилання на нього:

Перевірюємо ще раз

Тепер ми переконалися, що це той самий самий кореневий сертифікат.

Тепер перевіримо наш вихідний груповий сертифікат на відповідність ланцюжку.

Все відмінно, можна встановлювати, якщо, звичайно, ключ є :-)

Схожі статті