Статья посвящена обзору и сравнению различных SSL-сертификатов.
Мы все заботимся о безопасности: на машину ставим сигнализацию, а двери квартиры закрываем на замок. Точно так же сайты обеспечивают себе безопасность. Один из главных элементов этой безопасности – SSL-сертификат, применяемый еще с далекого 1994 года. Именно он обеспечивает безопасный канал связи между сайтом и пользователем.
SSL-сертификаты бывают трех видов:
• DV (Domain Validation) – проверка домена, быстрая выдача от 15 минут;
• OV (Organization Validation) – проверка организации, выпускается за несколько дней;
• EV (Extended Validation) – расширенная проверка (знаменитый зеленый замочек, как у Timeweb), выпускается за неделю.
Сегодня мы будем рассматривать сертификаты с проверкой домена (DV), причем только бесплатные варианты, и выберем, какой сертификат больше всего подходит для старта.
Let's Encrypt – классика жанра
Let's Encrypt (letsencrypt.org) – некоммерческая организация, созданная в 2012 году, обрела свою популярность исключительно из-за бесплатных сертификатов (на 90 дней).
Плюсы:
- сертификат сроком на 90 дней;
- поддержка IDN (с 2016 года);
- поддержка поддоменов;
- уведомления об истечении сертификата.
Минусы:
- требуется установить клиент на сервер для получения сертификата или воспользоваться сторонними сервисами, такими как sslforfree.com или zerossl.com;
- из-за этого увеличивается время выдачи – в среднем оно занимает 15 минут;
- на сторонних сервисах всего один способ подтверждения — по HTTP, например, на бесплатных хостингах часто используется система против ботов — тут-то получить сертификат и не получится,
- не поддерживаются некоторые операционные системы и старые браузеры, не очень большая совместимость,
- нет гарантии безопасности,
- нет SiteSeal.
Cloudflare
Cloudflare (cloudflare.com) – американская компания, предоставляющая услуги CDN и защиты от DDoS-атак. Также предоставляет сертификаты безопасности на бесплатной основе.
Плюсы:
- поддержка нескольких сайтов сразу и поддоменов;
- сертификат сроком один год с продлением;
- поддержка IDN.
Минусы:
- поддержка далеко не всех операционных систем;
- обязателен перенос DNS на их серверы;
- в сертификате будете не только вы, он будет выдан один на 50 сайтов;
- придется помучиться с настройкой, быстро получить сертификат не получится;
- нет гарантии безопасности;
- нет SiteSeal.
Free SSL Space
Free SSL Space (freessl.space) – довольно новый проект, партнерами которого являются один из крупнейших сертифицирующих центров Sectigo CA (ранее Comodo CA), выпускающий эти сертификаты, и крупный продавец платных сертификатов GoGetSSL (gogetssl.com).
Плюсы:
- защита www и основного сайта;
- есть SiteSeal;
- уведомления об истечении сертификата;
- гарантия 10,000$ от GoGetSSL;
- поддержка 99,6% устройств (очень высокая совместимость);
- получение сертификата — не более 5 минут;
- разные способы подтверждения домена (HTTP, CNAME и почта);
- сертификат на 90 дней с безлимитными продлениями;
- поддержка IDN.
Минус:
- нет возможности добавить поддомены, для каждого нужно заказывать свой сертификат.
Немного о платных сертификатах
Под конец статьи хочется напомнить, что бесплатный сертификат никогда не заменит платного и рекомендуется для использования только во время тестирования. Если ваш проект является серьезным, советуем купить платный сертификат – это надежнее, да и поводов для волнения меньше.
Хорошим примером соотношения цены и качества будет Sectigo Positive SSL — можете купить его по низкой цене в панели Timeweb: поддерживается один домен, но на год, а не на 90 дней.
Выводы
Если выбирать среди бесплатных вариантов, по сроку действия сертификата побеждает Cloudflare, однако его настройка будет проблематичной и по поводу безопасности есть сомнения. Let's Encrypt выигрывает в номинации «Поддержка множества поддоменов», но проигрывает в количестве поддерживаемых устройств, как и Cloudflare.
По быстроте и удобству выдачи несомненная победа у Free SSL Space. С безопасностью у него тоже все в порядке, именно поэтому мы рекомендуем использовать именно его.
Комментарии
Что касается шифрования и доверия:
1) Протокол ssl обеспечивает надёжное шифрование и гарантирует, что трафик между клиентом и сервером не будет кем-то прочитан или изменён. Для такого сценария достаточно и самоподписанного сертификата (это когда сервер сам себе генерирует ключевую пару и сертификат).
2) Но самоподписанный сертификат не защищает от атаки MITM (человек посередине). Это когда некто встраивается посередине между клиентом и сервером, при инициализации сессии серверу представляется клиентом, клиенту сервером, проксирует через себя трафик клиента и тем самым получает возможность его читать и изменять. Это он может провернуть, потому что может точно так-же сам себе выпустить сертификат на любое доменное имя, но у же со своей ключевой парой.
Для избежания этой атаки и были введены цепочки доверия и корневые центры сертификации. Идея в том, что сертификаты могут выпускать не только лишь все, а только узкий список мегадоверенных центров сертификации, которые подписывают сертификаты своими отпечатками и браузеры, по умолчанию, доверяют только им. А если браузер не доверяет сертификату, то появляется повод задуматься, а нет ли чего либо посередине?
Корневые ЦА не выпускают сертификаты для сайтов как таковые, они выпускают сертификаты для промежуточных центров сертификации. Стать таким промежуточным ЦА - это овердохера денег, в том числе и на аттестацию и соблюдение очень строгих мер безопасности. При потере аттестации сертификат ЦА будет мгновенно отозван. Понятно, что такие промежуточные ЦА стремятся отбить вложения и переложить эти траты на клиентов, поэтому подовляющее большинство сервисов по выпуску сертификатов платные. Из бесплатных только Let's Encrypt и ещё парочка, которые осознанно сами несут эти расходы по разным причинам. Но это совершенно не означает, что бесплатные сертификаты менее надёжные, чем платные. Их надёжность обеспечивается той же самой процедурой аттестации, которая едина для всех.