- Что такое ssl-сертификат?
- Верификация домена
- Где купить ssl-сертификат?
- Где получить ssl сертификат бесплатно
- Генерация сертификата
- Для чего нужен ssl сертификат
- Защита для бизнеса и клиентов
- Как выпустить самоподписанный ssl сертификат и заставить ваш браузер доверять ему
- Какие бывают ssl сертификаты
- Кому подойдет бесплатный sslсертификат
- Несколько фактов о startssl
- Подтверждение бесплатного ssl-сертификата через dns
- Подтверждение по почте
- Получение бесплатного ssl-сертификата через хостинг-провайдера
- Получение сертификата
- Проходим проверку (2-й уровень верификации)
- Типы сертификатов.
- У хостинг-провайдера или регистратора доменных имен
- Уровни проверки ssl-сертификатов
- Установка ssl-сертификата на сервер
- Через ispmanager
Что такое ssl-сертификат?

Многие наверняка слышали про
, но не все чётко представляют, что это такое и для чего они нужны. По сути, SSL-сертификат — цифровая подпись вашего сайта, подтверждающая его подлинность. Использование сертификата позволяет защитить как владельца сайта, так и его клиентов. SSL-сертификат даёт возможность владельцу применить к своему сайту технологию SSL-шифрования.
Верификация домена
Перед получением сертификата нам нужно подтвердить право владения доменом. Для этого переходим в раздел Validations Wizard и выбираем пункт Domain Name Validation
Вводим домен
Выбираем email, на который будет отослано письмо для подтверждения (postmaster, hostmaster, webmaster либо email из whois)
Получаем письмо и вводим код из него в поле. Все — домен подтвержден, можно приступать к генерации сертификата. В течении 30 дней мы можем генерировать сертификат. Далее нужно будет повторить процедуру верификации.
Где купить ssl-сертификат?

Приобретают сертификаты обычно не напрямую у удостоверяющего центра, а через партнёров. В России продажей сертификатов известных удостоверяющих центров (УЦ), таких как Comodo, Geotrust, GoDaddy, GlobalSign, Symantec и прочих, занимается множество компаний.
Где получить ssl сертификат бесплатно
Нашла для вас пять способов получить SSl сертификат без затрат.
Эта некоммерческая организация выдает бесплатные SSL DV сертификаты со сроком жизни три месяца. Можно получить wildcard-сертификат.
Еще одна некоммерческая организация, которая также выдает 90-дневные DV сертификаты. Отличается от Let’s Encrypt совместимостью: как заявляет компания, их сертификаты поддерживаются на 99,99% устройств. Нет опции wildcard.
У этого сервиса есть бесплатный тариф — DV сертификат на 90 дней. Как и Free SSL, заявляют о 99,99% совместимости с серверами, браузерами и устройствами, однако на бесплатном тарифе не поддерживается wildcard.
Этот сервис защищает сайты от DDoS-атак — моментов, когда злоумышленники пытаются перегрузить ваш сайт множеством одновременных запросов, а также ускоряет загрузку. Бесплатный SSL сертификат — приятное дополнение к сервису. CloudFlare предлагает получить SSL сертификат бесплатно и на неопределенный срок на базовом тарифе, который предназначен для личных некоммерческих сайтов.
У бесплатного SSL от CloudFlare есть одно «но». Загрузка сайта ускоряется благодаря тому, что сервис кеширует ваш сайт на свои серверы и контент попадает пользователю с них. Общение происходит по цепочке «пользователь — серверы CloudFlare — ваш сервер», и SSL зашифрует только первую связь.
Генерация сертификата
Идем в раздел Certificates Wizard и там выбираем Web Server SSL/TSL Certificate
Далее у нас 2 варианта — либо нажать на Skip и ввести запрос на генерацию сертификата, либо генерировать все в мастере. Допустим, запроса сертификата у нас нет, поэтому будем генерировать все в данном мастере.
Вводим пароль для ключа (мин. 10 символов — макс. 32) и размер ключа (20484096).
Получаем и сохраняем ключ.
Выбираем домен, для которого будем генерировать сертификат (домен должен быть уже подтвержден).
Нам дают право на включение в сертификат один поддомен — пусть будет стандартный www
Получили немного информации о сертификате, жмем на Continue.
Теперь ждем подтверждения сотрудником StartSSL сертификата. Обещают в течении 3-х часов, однако на практике все происходит намного быстрее, мне пришлось ждать 10 минут. Ранее заказывал ночью — примерно за такое же время подтверждали запрос.
Для чего нужен ssl сертификат
Во-первых, SSL сертификат поможет защитить ваших пользователей от мошенников. Какие варианты обмана могут быть:
- Злоумышленник просто заберет данные пользователей из потока данных и будет использовать их в своих целях.
- Более активное вмешательство — злоумышленник сможет изменить данные. Например, вы будете переводить платеж, а он поменяет счет получателя и сумму, и все ваши деньги уйдут к нему.
Во-вторых, пользователь будет спокоен — он увидит значок замка и будет чувствовать себя в безопасности.
В-третьих, получение SSL сертификата положительно скажется на ранжировании сайта поисковиками. Это знак, что вы заботитесь о безопасности пользователей, и повод для системы разместить вас повыше в выдаче.
Защита для бизнеса и клиентов

Каким же сайтам нужна защита SSL? Да практически всем. Особенно тем, которые в наибольшей степени подвержены атакам: ресурсам финансовых учреждений, крупных брендов, сайтам, работающим с персональными данными и платёжной информацией.
Как выпустить самоподписанный ssl сертификат и заставить ваш браузер доверять ему

Все крупные сайты давно перешли на протокол https. Тенденция продолжается, и многие наши клиенты хотят, чтобы их сайт работал по защищенному протоколу. А если разрабатывается backend для мобильного приложения, то https обязателен. Например, Apple требует, чтобы обмен данными сервера с приложением велся по безопасному протоколу. Это требование введено с конца 2021 года.
На production нет проблем с сертификатами. Обычно хостинг провайдер предоставляет удобный интерфейс для подключения сертификата. Выпуск сертификата тоже дело не сложное. Но во время работы над проектом каждый разработчик должен позаботиться о сертификате сам.
В этой статье я расскажу, как выпустить самоподписанный SSL сертификат и заставить браузер доверять ему.
Чтобы выпустить сертификат для вашего локального домена, понадобится корневой сертификат. На его основе будут выпускаться все остальные сертификаты. Да, для каждого нового top level домена нужно выпускать свой сертификат. Получить корневой сертификат достаточно просто.
Сначала сформируем закрытый ключ:
openssl genrsa -out rootCA.key 2048Затем сам сертификат:
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pemНужно будет ввести
страну
,
город
,
компанию
и т.д. В результате получаем два файла:
rootCA.key
и
rootCA.pem
Переходим к главному, выпуск самоподписанного сертификата. Так же как и в случае с корневым, это две команды. Но параметров у команд будет значительно больше. И нам понадобится вспомогательный конфигурационный файл. Поэтому оформим все это в виде bash скрипта create_certificate_for_domain.sh
Первый параметр обязателен, выведем небольшую инструкцию для пользователя.
if [ -z "$1" ]
then
echo "Please supply a subdomain to create a certificate for";
echo "e.g. mysite.localhost"
exit;
fiСоздадим новый приватный ключ, если он не существует или будем использовать существующий:
if [ -f device.key ]; then
KEY_OPT="-key"
else
KEY_OPT="-keyout"
fiЗапросим у пользователя название домена. Добавим возможность задания “общего имени” (оно используется при формировании сертификата):
DOMAIN=$1
COMMON_NAME=${2:-$1}Чтобы не отвечать на вопросы в интерактивном режиме, сформируем строку с ответами. И зададим время действия сертификата:
SUBJECT="/C=CA/ST=None/L=NB/O=None/CN=$COMMON_NAME"
NUM_OF_DAYS=999В переменной SUBJECT перечислены все те же вопросы, который задавались при создании корневого сертификата (
страна
,
город
,
компания
и т.д). Все значение, кроме CN можно поменять на свое усмотрение.
Сформируем csr файл (Certificate Signing Request) на основе ключа. Подробнее о файле запроса сертификата можно почитать в этой статье.
openssl req -new -newkey rsa:2048 -sha256 -nodes $KEY_OPT device.key -subj "$SUBJECT" -out device.csrФормируем файл сертификата
. Для этого нам понадобится вспомогательный файл с настройками. В этот файл мы запишем домены, для которых будет валиден сертификат и некоторые другие настройки. Назовем его
v3.ext
. Обращаю ваше внимание, что это отдельный файл, а не часть bash скрипта.
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = %%DOMAIN%%
DNS.2 = *.%%DOMAIN%%Да, верно, наш сертификат будет валидным для основного домена, а также для всех поддоменов. Сохраняем указанные выше строки в файл
v3.ext
Возвращаемся в наш bash скрипт. На основе вспомогательного файла v3.ext создаем временный файл с указанием нашего домена:
cat v3.ext | sed s/%%DOMAIN%%/$COMMON_NAME/g > /tmp/__v3.extВыпускаем сертификат:
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days $NUM_OF_DAYS -sha256 -extfile /tmp/__v3.extПереименовываем сертификат и удаляем временный файл:
mv device.csr $DOMAIN.csr
cp device.crt $DOMAIN.crt
# remove temp file
rm -f device.crt;Скрипт готов. Запускаем его:
./create_certificate_for_domain.sh mysite.localhostПолучаем два файла:
mysite.localhost.crt
и
device.key
Теперь нужно указать web серверу пути к этим файлам. На примере nginx это будет выглядеть так:

Запускаем браузер, открываем https://mysite.localhost и видим:

Браузер не доверяет этому сертификату. Как быть?
Нужно отметить выпущенный нами сертификат как Trusted. На Linux (Ubuntu и, наверное, остальных Debian-based дистрибутивах) это можно сделать через сам браузер. В Mac OS X это можно сделать через приложение Keychain Access. Запускаем приложение и перетаскиваем в окно файл mysite.localhost.crt. Затем открываем добавленный файл и выбираем Always Trust:

Обновляем страницу в браузере и:

Успех! Браузер доверяет нашему сертификату.
Сертификатом можно поделиться с другими разработчиками, чтобы они добавили его к себе. А если вы используете Docker, то сертификат можно сохранить там. Именно так это реализовано на всех наших проектах.
Делитесь в комментариях, используете ли вы https для локальной разработки?
Максим Ковтун,
Руководитель отдела разработки
Какие бывают ssl сертификаты
Есть разные виды SSL сертификатов. Они могут отличаться по количеству доменов и субдоменов, для которых они могут использоваться. Например, мультидоменные сертификаты могут защищать два, три или пять доменов. Сертификат с опцией wildcard распространяется на все субдомены указанного в сертификате домена.
Также сертификаты различаются по тому, как именно сайт будет проверяться. Тут есть три варианта:
И, наконец, есть несколько доверенных центров, которые выпускают сертификаты — например, Thawte, Sectigo, Geotrust, GlobalSign и другие. Их продукты отличаются уровнем защиты и различными дополнительными функциями.
Кому подойдет бесплатный sslсертификат
В большинстве случаев бесплатно вы можете получить только SSL сертификат низшего уровня, то есть с подтверждением домена — DV. Это значит, что вариант с бесплатным SSL сертификатом подойдет только для небольших сайтов, которые не просят у пользователя «опасных» данных вроде номера кредитки. Например, это:
- личный блог;
- сайт-визитка;
- сайт-витрина.
Для интернет-магазинов и прочих сайтов, которые запрашивают у пользователя финансовые и/или деликатные личные данные, лучше получать SSL сертификаты следующих уровней.
Несколько фактов о startssl
- 25 мая 2021 StartSSL был подвергнут атаке сетевых взломщиков (в простонародии хакеров), однако получить фиктивные сертификаты им не удалось. Закрытый ключ, лежащий в основе всех операций, хранится на отдельном компьютере, не подключенном к интернету.
- StartSSL поставляет помимо SSL сертификатов для Web, сертификаты для шифрования почты (S/MIME), для шифрования серверов XMPP (Jabber), сертификаты для подписи ПО Object code signing certificates).
- StartSSL проверяет верность установки сертификатов. После установки сертификата (через некоторое время) я получил уведомление о отсутствии промежуточного сертификата, и ссылка на информацию по установки.
После установки промежуточного сертификата пришло соответствующее письмо. - StartSSL поддерживается множеством ПО: Android, Camino, Firefox, Flock, Chrome, Konqueror, IE, Mozilla Software, Netscape, Opera, Safari, SeaMonkey, Iphone, Windows
- Дружелюбная поддержка на русском языке
- Сравнительная таблица вариантов верификации
- За 59.90$ вы можете создать ∞ количество WildCard сертификатов сроком на 3 года (350 дней, в течении которых вы можете перевыпускать сертификат 2 года, на которые можно выдать сертификат).
- Отзыв сертификата платный — 24,90$. 2-й класс верификации позволяет пересоздать сертификат (насколько я понял, всего один раз). Extended Validation сертификаты освобождены от этого сбора.
Подтверждение бесплатного ssl-сертификата через dns
На этапе выбора подтверждения кликаем на «DNS», где получаем нужные данные для ввода.
На следующем шаге видим, что система мониторит записи для подтверждения.
Переходим к хостинг-провайдеру (или другой интерфейс, куда через NS был делегирован домен) и переходим к редактированию DNS.
Добавляем новую TXT-запись.
Вводим выданные нам значения.
Подтверждение по почте
В этом случае система предложит написать на одну из почт:
В этом случае будет отправлено письмо с кодом на указанный электронный адрес, через которое можно будет подтвердить информацию.
В этом случае лучше всего:
Если указанной почты нет среди аккаунтов, то следует ее создать, например, в интерфейсе Яндекс.Коннекта это выглядит так:
Отправляем письмо для проверки.
В системе видно, что сообщение отправлено.
Далее приходит письмо на почту, где нужно скопировать проверочный код и перейти на страницу верификации.
На проверочной странице вводим ключи и нажимаем на «Next».
Закрываем страницу.
В ZeroSSL обновляем статус заявки.
Видим, что все прошло успешно и кликаем на «Install Certificate».
Скачиваем бесплатный SSL-сертификат через кнопку «Download Certificate (.zip).
При необходимости можно сказать в разных форматах, например, для:
- Apache;
- AWS;
- cPanel
- NGINX;
- Ubuntu;
- И многих других.
Далее переходим к установке его на сервер.
Важно! Одни аккаунт может иметь до трех доменов с сертификатами бесплатно.
Получение бесплатного ssl-сертификата через хостинг-провайдера
Если хостинг-провайдер предоставляет бесплатный SSL-сертификат, то можно
воспользоваться им. Так его предоставляют:
Например, в случае с Timeweb достаточно посетить
административную панель после чего перейти во вкладку «SSL-сертификаты» и нажимаем на
«Заказать».
Теперь выбираем «Let’s Encrypt»
(бесплатный) и домен, которому он будет применен.
Важно! Для того, чтобы воспользоваться данным методом
необходимо делегировать сайт под управление компании хостинга при помощи А-записи.
Получение сертификата
Нам осталось только получить сертификат и установить его на сервере. Идем в Tool Box -> Retrieve Certificate, выбираем домен и копируем сертификат.
Про установку не буду писать, информация есть на хабре и на StartSSL.
Проходим проверку (2-й уровень верификации)
Для снятия ограничений бесплатного сертификата нужно пройти идентификацию. Для этого в Validations Wizard выбираем Personal Identity Validation, проходим несколько шагов и нам предлагают загрузить документы
Для загрузки документов нужно только выбрать их в поле. Загрузить нужно не менее 2-х документов, подтверждающих вашу личность (главный разворот паспорта, водительские права, удостоверение личности, карточку социального обеспечения, свидетельство о рождении и т.д., я загружал главный разворот паспорта и студенческого билета). Могут запросить дополнительные документы — у меня запросили счет за телефон, в котором указан мой адрес, номере телефона и имя, в качестве альтернативы можно получить аналоговой почтой письмо для верификации адреса.
Далее вам нужно будет ввести данные своей кредитной картыPayPal. Идем в Tool Box ->Add Credit Card | PayPal | Ticket
Все, на этом подготовка к верификации окончена. Вам должно будет прийти письмо от поддержки с дальнейшими инструкциями. По окончании верификации вы сможете выпускать WildCart сертификаты в течении 350 дней. Далее нужно будет проходить проверку заново.
Типы сертификатов.
Допустим, руководствуясь соображениями из 1 части статьи вы решили купить подписанный сертификат. Каково же будет ваше удивление, когда на сайте ЦС вы узнаеете, что они бывают разные 🙂
Типы сертификатов:
Esential SSL — самый не дорогой и быстро оформляемый сертификат. Доступен как для юридических, так и для физических лиц. Проверяется только право владения доменным именем, личные данные или регистрация компании не проверяются. Выдается на 1 домен.
Instant SSL — доступен и для физ. лиц, и для юр. лиц. Проверяется право владения доменом, регистрационные данные компании либо личность физ. лица. Выдается на 1 домен.
SGC SSL-сертификат. — Аналогично Instant SSL, но с поддержкой 40-битных расширений (актуально для старых ОС и браузеров). Выдается на 1 домен, либо wildcard (см. ниже).
У хостинг-провайдера или регистратора доменных имен
Это условно-бесплатный способ получить SSL сертификат. Если вы только собираетесь заводить сайт или ищете новый хостинг — рассмотрите предложения, где бонусом идет сертификат.

Уровни проверки ssl-сертификатов

Существуют сертификаты разных уровней проверки. Для защиты персональных данных пользователей подойдёт сертификат с упрощённой проверкой — DV (Domain validation). Сертификат с проверкой доменов — самый низкий и недорогой уровень. Он доступен физическим и юридическим лицам, выдаётся владельцу или администратору доменного имени и просто подтверждает это доменное имя.
Следующий уровень — сертификат OV (Organization validation) для организаций, применяемый для проверки связи между доменным именем, хозяином домена и использующей сертификат компанией. То есть такой сертификат удостоверяет не только доменное имя, но и то, что сайт принадлежит действительно существующей организации.
Для более качественной проверки компании и её полномочий на приобретение сертификатов используются так называемые сертификаты с расширенной проверкой — EV (Extended validation). Это самый престижный вид сертификатов. Такие сертификаты вызывают больше всего доверия.
После установки сертификата расширенной проверки адресная строка в браузере становится зелёной — это визуальный индикатор надёжности сайта. В таком сертификате указано название организации и название удостоверяющего центра, выпустившего сертификат.
Эта схема показывает доли сертификатов DV, OV и EV у основных удостоверяющих центров. Сертификаты DV составляют около 70% от сертификатов всех типов, на EV приходится менее 5%.
Бывают сертификаты для одного, нескольких доменов (SAN) и сертификаты для всех прямых поддоменов выбранного домена (Wildcard).
Установка ssl-сертификата на сервер
В первую очередь распаковываем архив с сертификатом и видим, что он состоит из:
- certificate.crt (сертификат);
- private.key (приватный ключ);
- ca_bundle.crt (промежуточный сертификат).
Данный пункт необходим тем, кто не смог получить его у хостера и приобрел его не у своего провайдера. Для этого посещаем раздел «SSL», где выбираем пункт «Установить».
Вводим в соответствующие поля свой файл и завершаем установку.
Важно! Если не имеется навыка работы с интерфейсом хостинг компании (у некоторых провайдеров отсутствует возможность загружать сертификат самостоятельно в интерфейсе) рекомендуется загрузить архив с сертификатом на сервер и написать в поддержку с просьбой об установке.
Важно! Срок действия сертификата 3 месяца, после чего его потребуется
обновиться, выполнив инструкцию еще раз.
Важно! Если сертификат выдается на поддомен, то потребуется
подтвердить лишь основной домен (соответственно загрузить лишь 1 файл или
установить 1 TXT-запись).
Через ispmanager
Следует посетить раздел «WWW»-«SSL-сертификаты»,
после чего кликнуть на «Создать».
Выбираем пункт «Существующий».
Ставим данные из файлов в нужные поля и даем имя
сертификату.
Важно! Если не получается воспользоваться ни первым ни
вторым способом или данного раздела (SSL) нет в административной панели (как, например, в SprintHost), то Вы можете
загрузить сертификаты на свой сервер и создать тикет хостинг-провайдеру для
установки.
