Мне сложно понять, зачем нам покупать SSL-сертификаты, если мы можем сгенерировать их локально с помощью openSSL. В чем разница между сертификатом, который я покупаю, и тестовым сертификатом, который я генерирую локально? Это просто большая афера?
Одно слово - доверие. Сертификат SSL от поставщика, которому доверяет ваш браузер, означает, что он, по крайней мере, выполнил базовую проверку, чтобы сказать, что вы такой, какой вы себя называете.
В противном случае я мог бы сделать свои собственные сертификаты для google.com или yourbank.com и выдать себя за них.
Платные сертификаты не обеспечивают какого-либо дополнительного уровня шифрования по сравнению с самоподписанными (обычно). Но самоподписанный сертификат приведет к тому, что браузер выдаст ошибку.
Да, части SSL - это мошенничество (сертификат verisign против geotrust, где verisign до 100 раз дороже), но не все.
Если это все внутренние вещи, то в платном сертификате нет необходимости, поскольку вы можете использовать свои собственные методы доверия (например, ничего не делать или, возможно, просто проверять отпечатки пальцев).
Вся суть сертификата SSL заключается в том, чтобы браузер имел разумную степень доверия к открытому ключу сервера для транзакций HTTPS.
Во-первых, давайте посмотрим, что произошло бы, если бы мы не использовали сертификаты. Вместо этого сервер отправит открытый ключ в виде открытого текста, а браузер будет инициировать зашифрованную связь, используя его (первое, что он сделает, - это зашифрует свой собственный открытый ключ и безопасно отправит его). Что, если я и нападающий заклинили себя посередине? Я мог бы на лету заменить ваш открытый ключ своим, иметь зашифрованное соединение с браузером, расшифровать все, что я получаю, зашифровать его вашим открытым ключом и отправить его (и наоборот для трафика типа ответа). Никакая сторона не заметит разницы, так как никто заранее не знает публичные ключи.
Итак, мы установили, что нам нужен какой-то способ, чтобы браузер мог доверять моему открытому ключу. Один из способов сделать это - сохранить все зарегистрированные открытые ключи в браузере. Конечно, это потребовало бы обновления каждый раз, когда кто-то регистрировал открытый ключ, и это привело бы к раздуванию. Можно также держать открытые ключи в руках DNS-серверов.1, но DNS-серверы также могут быть подделаны, а DNS не является безопасным протоколом.
Таким образом, остается единственный вариант - «связать» доверие с помощью механизма подписи. Браузер хранит сведения о нескольких центрах сертификации, и ваш сертификат будет отправлен вместе с цепочкой других сертификатов, каждый из которых будет подписывать следующий и подниматься до корневого / доверенного / встроенного центра сертификации. Задача CA - убедиться, что домен принадлежит вам, прежде чем подписывать для вас сертификат.
Поскольку ЦС - это бизнес, они взимают за это плату. Некоторые больше, чем другие.
Если вы создали свой собственный сертификат, вы получите сообщение об ошибке, подобное следующему:
Неподписанный сертификат не имеет ценности. Это все равно, что взять карандаш и буклет, нарисовать паспорт, на котором написано, что вы Барак Обама. Этому никто не поверит.
1. Ведь ваша запись DNS создается при регистрации домена. Использование более надежного протокола, позволяющего одновременно регистрировать открытые ключи, было бы интересной концепцией.
Ответ на ваш вопрос зависит от вашей аудитории: поскольку вся система сертификатов основана на «доверии», ваши пользователи должны иметь возможность самостоятельно подтвердить ваши сертификаты или доверять третьей стороне, которая провела эти проверки и продемонстрировала успех, подписав ваш сертификат. Термин «для подтверждения ваших сертификатов», который я использовал, немного неточен: длинная версия должна быть: «для доказательства того, что вы являетесь владельцем сертификата и имеете право его использовать».
Если все ваши пользователи знают вас лично и имеют техническую возможность подтвердить, что ваш сертификат был выпущен вами, нет технической необходимости использовать сертификат от «сертифицированного» поставщика. В этом случае самозаверяющий сертификат может быть даже лучше, чем сертификат одного из этих поставщиков.
Но в большинстве случаев у пользователей нет возможности выполнить этот процесс самостоятельно. Здесь эти поставщики SSL выходят на рынок. Они предлагают услуги по выполнению этих проверок и выражают результат проверки путем подписания сертификата. Но следует иметь в виду один важный факт: подписывая сертификат, провайдер SSL заявляет, что он проверил личность издателя сертификата в соответствии со своей собственной политикой подписи. Таким образом, пользователь должен решить, достаточно ли точна эта политика и может ли он / она доверять провайдеру.
Суть в том, что если сертификат создан самим, обычные пользователи не смогут проверить его истинность. Для приобретенного сертификата они предполагают, по крайней мере, проверить правильность печати внутри сертификата. Идея: если вы укажете свой телефон и адрес в сертификате, центр сертификации должен его проверить, но это случается редко.
Кроме того, сертификат покупки отслеживается, что означает, что пользователь всегда может отследить, откуда пришел сертификат, в то время как самозаверяющий сертификат - это только случайная идентификация.
Для многих систем в прошлом требовалась «подпись кода» от авторизованного центра сертификации, что определяется политикой, но, поскольку самозаверяющих сертификатов так много, теперь они больше не применяются на 100%.
Нет никакой технической разницы (ваши собственные не менее безопасны), только организационной: ваш сертификат CA не является частью стандартной установки браузеров. Это делает неудобным подключение к вашему сертификату для большинства людей. Но покупать сертификат для внутренней сети не имеет смысла.
Все сводится к доверию. «Сертифицированный» поставщик SSL считается авторитетным (хотя этим можно манипулировать) по сравнению с самозаверяющим сертификатом с самого сервера.
Если в вашей организации есть собственная подпись сертификата, это вполне приемлемо и не должно вызывать никаких предупреждений для пользователей (при условии, что они используют вашу связку ключей сертификатов в качестве надежного источника), но все равно будет создавать предупреждение, если вы попытаетесь использовать его извне.
Итог: для внутреннего использования это нормально, если вы предоставляете его внешне платному клиенту, отсутствие предупреждений - это спокойствие. Чувствуете ли вы себя в большей безопасности, если ваши финансовые операции будут осуществляться через аккредитованный источник или через какого-нибудь парня, стоящего на улице, которого вы действительно не знаете?
В последнее время, LetsEncrypt объявила о доступности своих инструментов командной строки для создания действительных сертификатов.
Никаких проверочных писем, никакого сложного редактирования конфигурации, никаких просроченных сертификатов, нарушающих работу вашего сайта. И, конечно же, поскольку Let's Encrypt предоставляет сертификаты бесплатно, нет необходимости организовывать оплату.
Для тех, кто задается вопросом, действительны ли эти сертификаты в основных браузерах, ответ - да:
19 октября 2015 года промежуточные сертификаты стали перекрестно подписаны IdenTrust, в результате чего все сертификаты, выпущенные Let's Encrypt, стали доверенными для всех основных браузеров. [20]
..... 8 марта 2016 года Let's Encrypt выпустила миллионный сертификат после семи месяцев существования. [39]
12 апреля 2016 года Let's Encrypt покинул бета-версию.
Ссылка для системного администратора и разработчиков: https://letsencrypt.org/getting-started/
В эпоху технологии блокчейн и ликвидации сторонних доверительных систем пришло время поставить под сомнение выдачу дорогостоящих сертификатов несколькими избранными органами.
Хотя Letsencrypt не имеет ничего общего с технологией блокчейн, это начало в правильном направлении. Мы надеемся, что необходимость ежегодно платить высокую плату дорогостоящему центру сертификации подходит к концу.
Проще говоря, самоподписанный сертификат SSL ничего не значит. Это не имеет значения для внешнего мира. Это как сказать: «Я владею Испанией». Вы можете честно подумать, что да, но никто не признает вашу претензию.
Похожая аналогия - изобретение чего-то, а затем заявление о том, что вы владеете правами на изобретение, но если вы не зарегистрируете патент в офисе, вам будет сложно поверить на слово, не так ли?
Весь смысл сертификата в том, что он подписан авторитетным лицом, которому доверяют. Если на каком-то веб-сайте есть действующий сертификат SSL, это означает, что владелец столкнулся с проблемой регистрации своего веб-сайта, оплаты сертификата SSL и получения официальной сертификации от какого-либо реального центра сертификации, так что это, вероятно, не дешевый фишинговый веб-сайт. С другой стороны, если вы доверяете самозаверяющим сертификатам, то указанный фишинговый веб-сайт может просто сгенерировать собственный поддельный сертификат (который вы с радостью примете) и вуаля.
Конечно, если это внутренняя сеть в частной интрасети, то вы, вероятно, уже доверяете друг другу, поэтому в этом случае авторитетный сертификат на самом деле ничего не добавляет, поэтому вы можете спокойно игнорировать яркие красные огни, которые ваш браузер будет бросать на вас. . То же самое для небольших веб-сайтов, где вы по-прежнему хотите, чтобы трафик клиент-сервер был зашифрован, но ваша модель угроз не гарантирует строгой аутентификации, и в этом случае вы можете обойтись самозаверяющим сертификатом и принять (незначительное для вашей модели угроз) риск MITM.
Что, вероятно, удовлетворительно, учитывая, насколько дорогими могут быть доверенные сертификаты SSL.
Другими словами, самоподписанный сертификат означает: «Я подтверждаю, что я такой, какой я есть - Доверьтесь мне! ».
Чтобы быть кратким и простым ... и немного опровергнуть сказанное ...
Это не проблема шифрования, с помощью соответствующих инструментов вы можете создать сертификат локально с нужным типом шифрования ... и получить действующий сертификат.
Основное преимущество, которое вы получаете при покупке сертификата у сертификационной организации, заключается в том, что в течение периода действия сертификата они хранят на своих серверах механизм проверки всего, что вы подписали с помощью своей сертификации онлайн ...
Ваш компьютер не должен быть подключен для проверки и подтверждения ваших цифровых продуктов с помощью вашего сертификата ... вам следует перенаправить проверку в организацию по сертификации.
Извините, что зашел в это обсуждение так поздно - я подумал, что стоит указать, что с помощью openssl можно настроить частный ЦС с собственным корневым сертификатом, а затем создать сертификаты сервера, подписанные этим ЦС. При условии, что корневой сертификат CA импортирован в браузер и браузеру сказано принять его, сертификат сервера будет принят без комментариев. (Очевидно, что это жизнеспособный вариант, только если сообщество пользователей невелико, и все пользователи знают друг друга лично.)
Вы бы поверили тому, кто говорит: «Доверься мне»? Уверенность в подлинности может быть обеспечена только «доверенным органом», которому все доверяют. Вот почему мы должны выложить большие деньги за сертификаты.