Отже, у нас, наприклад, є сертифікат для установки, виданий кимось, хто не надав кореневий сертифікат.
Нам потрібно, щоб при використанні цього сертифіката не було помилок. Таких, наприклад, як ця:
error 20 at 0 depth lookup: unable to get local issuer certificate
Нам не вистачає правильно сформованої ланцюжка кореневих сертифікатів.
Вихідний сертифікат перевіряється за першим сертифікату в цьому ланцюжку, а далі той перший перевіряється по другому в ланцюжку і т.д. поки не зайдемо в довірений кореневий сертифікат, що зберігається в локальному сховищі сертифікатів (для Debian це / etc / ssl / certs /).
Для початку, дізнаємося, хто видав наш сертифікат:
Для прикладу візьмемо груповий серіфікат * .google.com.
Можна завантажити його ось так або ж іншим шляхом:
Перевіримо тільки що завантажений сертифікат:
Пройдемо по посиланню емітента і отримаємо перший сертифікат в майбутньої ланцюжку:
Значить другого сертифіката в ланцюжку не буде. Хто ж видав сертифікат емітенту?
Ага, значить цей кореневий сертифікат повинен лежати в нашому сховищі. перевіримо:
Спробуємо перевірити з директивою CApath на поточну директорію, щоб переконатися, що це саме той сертифікат:
Очікувана, помилка. Ну що ж, відтворимо шматочок сховища:
Порахуємо hash і зробимо символьне посилання на нього:
Перевірюємо ще раз
Тепер ми переконалися, що це той самий самий кореневий сертифікат.
Тепер перевіримо наш вихідний груповий сертифікат на відповідність ланцюжку.
Все відмінно, можна встановлювати, якщо, звичайно, ключ є :-)