Что такое SSL?
Существует множество протоколов передачи данных, которые определяют порядок и способ обмена данными между различными программами. Одним из таких протоколов является Secure Sockets Layer, проще говоря тот самый SSL. Мы будем вести разговор непосредственно о его разновидности для веб-браузеров – HTTPS, чаще всего вы сталкиваетесь с ним про посещение веб-сайтов. Отметим, что SSL протокол не лимитирован только функционалом для веб-сайтов, а так же активно применяется для защиты:
- Передаваемых по FTP протоколу файлов
- Передаваемых по IMAP и POP протоколам писем
- Защита систем мгновенных сообщений
- Защита ip-телефонии и т.д.
За основу к созданию защищенного канала связи по SSL протоколу берутся два криптографических ключа – публичный и секретный, которые вместе представляют собой ассиметричное шифрование.
Например, создав публичный ключ вы можете зашифровать нужные вам данные, а для их расшифровки вам понадобится созданный вместе с ним секретный ключ. Эти два ключа и небольшая дополнительная информация образуют единое целое – SSL сертификат. Для легкости понимания все намного проще – SSL-сертификат и криптографические ключи представляют собой обычный файлы с определенным набором символов.
Таким образом для активации на вашем сайте защищенного веб-протокола HTTPS все, что вам необходимо сделать – это подключить к ним данные файлы.
Возможность создания SSL сертификата своими руками
Отметим, что благодаря тому, что стандарты на которых основан протокол являются публичными, соответственно ими могут пользоваться в свободном доступе любой желающий и таким образом имеют возможность сами создать приложение для генерации той самой пары ключей (публичного и секретного) для SSL-сертификата.
Но мы знаем как минимум две причины, которые должны вас остановить:
- во-первых, сама по себе наука о криптографии очень серьезна, которая требует очень высокого уровня экспертности в программирование и математике и даже если вы обладаете этими компетенциями это не обезопасит вас от ошибок, поскольку даже в проверенных временем криптографических программ находят ошибки, которые ведут за собой уязвимости.
- во-вторых за долгое время создано уже множество бесплатных приложений для генерации ключей с открытым исходным кодом, самое популярное из них – OpenSSL.
С помощью подобных генераторов ключей создаются полноценные, рабочие пары ключей, используемые для создания защищенных каналов связи между ПК и различными приложениями.
В целом все выглядит достаточно радужно, но если и обратная сторона медали – SSL-сертификат созданный при помощи собственного генератора, который вы установите на веб-сервер будем выдавать пользователям при посещении предупреждающее сообщения:
Это сообщения из различных веб-браузеров которые предупреждают о том, что соединение с данным веб-сайтом может быть небезопасным.
Решение проблемы – удостоверение
Стоит объяснить, почему же мы получаем данные сообщения об ошибки соединения по HTTPS-протоколу? Ответ достаточно прост – пользовательский браузер не может распознать того, кто выпустил данный SSL сертификат, который вы установили на веб-сервер.
Приведем наглядный пример из жизни – вы встретили незнакомого вам иностранца и он предоставляет вам к осмотру свой паспорт, но вы ничего не знаете о стране, которая его выпустила и не обязательно что он должен после этого совершить преступление, возможно просто вы забыли или не знаете, что это за страна. Но итог один, вы просто не можете разрешить этому иностранцу делать какие-либо действия. Аналогично поступает и веб-браузер, когда видит незнакомый ему SSL-сертификат.
Как же решить эту проблему? Найти свидетеля или доверенного, кто может подтвердить личность это незнакомца.
Вывод прост – самостоятельно созданные криптографические ключи не содержат сведений о том, кому они принадлежат. Для подтверждения нужен такой же свидетель, который удостоверит ваш сертификат, установленный на веб-сервер.
Существуют так называем центры сертификации, которые как раз выступают в качестве доверенного звена в этом процессе. Своей электронной подписью они удостоверяют SSL сертификат и их владельцев.
В данной подписи содержится полная информация о том, кто ее подписал и кто владелец самого сертификата. Чтобы использовать SSL-сертификат на публичном сервере он должен быть подтвержден или получен в одном из центров сертификации (Certification Authority).
Где купить SSL-сертификат?
Самих центров сертификатов не так много, в пределах сотни, но у вас нет необходимости ехать туда и получать там подпись лично – продажа сертификатов осуществляется путем выдачи через партнеров.
SSL-сертификат вы можете приобрести здесь.
Теперь подведем итоге:
- сертификаты, которые пользователи создают самостоятельно лучше использовать в определенных ситуациях, к примеру внутри каких-либо компьютерных сетей. В случае когда вам нужно подтвердить веб-сайт сертификат необходимо приобретать официально.