Вся суть сертифіката SSL полягає в тому, що браузер має достатню довіру до відкритого ключа сервера для транзакцій HTTPS.
Спочатку давайте вивчимо, що буде, якби ми не використали сертифікати. Натомість сервер надсилатиме відкритий ключ у простому тексті, а браузер ініціює зашифроване повідомлення за допомогою нього (перше, що потрібно зробити, це зашифрувати власний відкритий ключ та надійно надіслати його). Що робити, якщо я та нападник заклинили себе посередині? Я міг би замінити ваш відкритий ключ на ходу моїм, мати зашифроване з'єднання з браузером, розшифрувати всі отримані вами речі, зашифрувати його своїм відкритим ключем та надіслати його (і навпаки для трафіку типу відповіді). Жодна партія не помітила різниці, оскільки ніхто не знав публічних ключів заздалегідь.
Гаразд, тому ми встановили, що нам потрібен спосіб, щоб браузер міг довіряти моєму відкритому ключу. Один із способів зробити це - зберігати всі зареєстровані відкриті ключі у браузері. Звичайно, це потребує оновлення кожного разу, коли хтось зареєструє відкритий ключ, і це призведе до розриву. Можна також тримати відкриті ключі в руках DNS-серверів 1 , але DNS-сервери також можуть бути підроблені, і DNS не є захищеним протоколом.
Тож єдиний варіант, який залишився - це "ланцюжок" довіри через механізм підписання. У веб-переглядачі зберігаються реквізити кількох ЦС, і ваш сертифікат буде надісланий разом з ланцюжком інших сертифікатів, кожен з яких підписує наступний і піднімається до кореня / довіреного / вбудованого CA. Завдання CA - переконатися, що домен належить вам, перш ніж підписати для вас сертифікат.
Оскільки, як компанія CA - це бізнес, вони беруть плату за це. Деякі більше, ніж інші.
Якщо ви зробили власний сертифікат, ви отримаєте помилку, схожу на:
Немає значення для безпідписаного сертифіката. Це як взяти олівець і буклет, намалювати паспорт, який стверджує, що ви - Барак Обама. Ніхто не буде довіряти цьому.
1. Зрештою, ваш запис DNS створюється під час реєстрації домену. Використання більш надійного протоколу, який дозволяє одночасно реєструвати відкриті ключі, було б цікавою концепцією.