Чи погана практика використовувати самопідписані сертифікати SSL?


29

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

Однак кілька веб-переглядачів демонструють неприємні попередження при зустрічі з таким сертифікатом. Чи відмовляєте ви використовувати самопідписані сертифікати (наприклад, для невеликих веб-додатків або адміністративної сторінки невеликого веб-сайту)? Або це нормально в деяких випадках?

Відповіді:


14

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

Перегляньте статтю тут, http://www.sslshopper.com/article-when-are-self-signed-certificates-acceptable.html, щоб отримати додаткову інформацію про неї.


14

Як заявив RandomBen, сертифікати, що підписують власні підписи, як правило, знущаються з причин, які він пояснив. Але є одна ситуація, в якій вони добре: якщо набір людей, яким потрібно надіслати конфіденційні дані на ваш веб-сайт, невеликий і обмежений, всі вони дещо технічно компетентні, і ви можете спілкуватися з усіма ними. У такому випадку ви можете надати кожній особі реквізити сертифікату, а потім вони можуть перевірити сертифікат вручну, коли вони перейдуть на ваш сайт, і, якщо потрібно, додати виняток із безпеки.

Як крайній приклад, у моєму особистому VPS є адміністративний субдомен, до якого слід звертатися лише колись. Не було б проблеми з доступом цього домену за допомогою самопідписаного сертифікату, оскільки я можу вручну перевірити, чи є сертифікат сервера, який використовується для захисту з'єднання, той самий, який я встановив на сервері.

У випадках, коли самопідписаний сертифікат не працюватиме або ви бажаєте мати "справжній", я рекомендую Let’s Encrypt - проект, розпочатий дослідницькою групою Internet Security та підтриманий великими інтернет-компаніями, який пропонує сертифікати SSL у без витрат. Вони можуть це зробити, тому що процес перевірки, який вони використовують, повністю автоматизований, і насправді веб-сервер, який підтримує їхній протокол ACME (наприклад, Caddy , який я зараз використовую), може отримати сертифікати повністю самостійно. Давайте Шифрувати не підтвердить, що ви, як людина, є ким ти кажеш, що ти є; він лише підтверджує, що ваш веб-сервер здатний подавати вміст у домені, на який він претендує. Давайте шифрувати підтримують усі основні веб-переглядачі, але добре відомо, що перевірка мінімальна, тому якщо ви використовуєте щось на зразок веб-сайту електронної комерції чи будь-чого, де люди будуть надсилати конфіденційну інформацію, ви, ймовірно, повинні витратити гроші, щоб отримати сертифікат з більш високим рівнем перевірки.

Раніше я рекомендував безкоштовні сертифікати StartSSL від StartCom людям, які не хотіли платити за перевірку, але вже не. StartCom був таємно придбаний WoSign в 2016 році і згодом видав нелегітимні сертифікати для кількох доменів. В результаті основні браузери зняли підтримку сертифікатів StartCom. (Наскільки я знаю, IE ніколи їх не підтримував.) У будь-якому випадку, давайте шифрувати набагато зручніше.


+1 для першого абзацу. Я використовую самопідписаний сертифікат для Webmin на своєму сервері, оскільки ним користується лише я та дизайнер, але я б не рекомендував це робити для загальнодоступного використання.
НезадоволенняГота

3

Це НЕ погана практика використання самоподпісанного сертифікатів. Самопідписані сертифікати мають багато практичних цілей, для яких просто не має сенсу використовувати сертифікат, підписаний CA.

Наприклад, на багатьох моїх серверах я налаштований без паролів. Це сервери, до яких я підключаюсь так часто, а інколи постійно відкриваю кілька SSH-з'єднань, що можу вводити моє ім’я користувача та пароль кожен раз.

Натомість я використовую самопідписаний сертифікат SSL, який генерую на кожній з моїх клієнтських машин (робоча станція в офісі, ноутбук та домашня робоча станція). Таке налаштування дозволяє використовувати досить довгі, безпечні та абсолютно унікальні парольні фрази для кожного з моїх серверів, не впливаючи на продуктивність. Оскільки я маю прямий доступ до серверів, на яких я можу встановити відкритий ключ для кожного сертифіката, мені немає сенсу використовувати сертифікат, підписаний CA.

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

Аналогічно, самопідписані сертифікати часто використовуються для підключення електронної пошти, підпису PGP та підключення між сервером і сервером, де попередньо обмінятись відкритими ключами. У багатьох із цих випадків це насправді безпечніше, ніж покладатися на ланцюжок сертифікатів, який може бути порушений у будь-якій точці ланцюга.


Я не розумію, чому ви використовуєте сертифікати SSL у своєму випадку? Ви згадуєте, що не хочете вводити свій пароль кілька разів: ви можете просто використовувати приватний ключ SSH з ssh-агентом, щоб автоматично аутентифікувати вас на кожному сервері, не вводивши свій пароль більше одного разу.
Wookai

@Wookai: Це був би один із способів зробити це для SSH, але використання сертифікатів клієнта SSL - це набагато більш загальний метод аутентифікації клієнта. Я також використовую свої клієнтські сертифікати для аутентифікації HTTPS , а також електронну пошту, і якщо я вирішу встановити внутрішній CA згодом, він стає ще більш гнучким / потужним. У цей момент мені не потрібно встановлювати індивідуальні приватні ключі для кожного клієнта / користувача. Це просто більш надійне рішення ІМО.
Lèse majesté

2

Якщо ви захищаєте декілька субдоменів, ви можете скористатися сертифікатами підстановки , які (залежно від того, скільки субдоменів ви захищаєте), можуть вийти значно дешевше, ніж купувати один на домен; наприклад, у RapidSSL видно, що у вас є чотири домени.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.