Выбор и создание SSL сертификата

В один момент возникла проблема перехвата данных при передачи их по сети Интернет. Встала задача – обеспечить безопасную передачу данных на канале соединения между сервером, на котором находится ресурс, и браузером пользователя. Для этого был разработан SSL-сертификат.

SSL (Secure Sockets Layer, т. е. Уровень Защищенных Сокетов)-сертификат – это специальный сертификат безопасности, который устанавливается на сайт для того, чтобы данные можно было передавать по протоколу SSL. Другими словами, это «цифровая подпись» сервера с данными.

У сайта с установленным защитным сертификатом в адресной строке в начале ссылки будет вместо классического «http» будет написано «https». Окончание означает secure.

Защищенный сайт также вызывает больше «доверия» у поисковых систем ( таких как Яндекс) и такие сайты выдаются выше, чем сайты незащищенные, такие сайты поисковики отображают как «небезопасные».

Подводя краткий итог, делаем вывод, что SSL-сертификат дает нам:

  • Защищенное соединение, безопасный обмен информацией между клиентом и сервером.
    Поднятие сайта в поисковых системах, что помогает продвижению сайта.
  • Есть 2 вида сертификатов, бесплатные и платные. Их различие состоит из ниже описанных критериев.

Различия в сертификатах

Параметры, по которым различают сертификаты:

  • Срок действия. Бесплатные сертификаты вам нужно обновлять раз в квартал. Занятие это трудоёмкое, на него потребуется выделить определенное количество времени. Также вероятнее всего сертификат у вас будет новый, отличимый от прошлого. Сертификаты со стоимостью от 1000 руб в год.
  • Страховая защита. Сертификаты, за которые вы не платите, с одной стороны обещают вам защиту данных, но в случае любых утечек, отвечать будет владелец сайта. В случае, если при установленном платном сертификате произойдет утечка, компания, выпустившая сертификат, гарантирует страховые выплаты. Берет на себя полную ответственность за данные сайта и его пользователей соответственно. Условия выплаты и её количество расписывают в условиях сертификата, обычно составляет около 10 000$.
  • Доверие поисковых систем. Есть случаи, когда некоторые браузеры и поисковые системы переставали считать доверенными сертификатами от определенной компании. Соответственно, при переходе на такой сайт отображается ошибка об опасном соединении, что отпугивает большинство пользователей.
  • Опыт работы с web-разработкой. Установка платных SSL-сертификатов проста, не нужно чтобы у вас имелись какие-то дополнительные знания. Если выбирать бесплатный, то понадобится определенный багаж знаний. Почти во всех случаях саппорт таких сервисов, как и инструкции, написаны на английском.
  • Степень доверия пользователя к сайту. Бесплатный SSL-сертификат не дает гарантию безопасности для посетителей. Сертификаты бесплатные, из-за более просто устройства, проверяют только домен, соответственно злоумышленники могут сделать копию вашего сайта вместе с сертификатом. А пользователь не обнаружит никакой разницы между вашим сайтом и «злым двойником». Поэтому рекомендуется, если ваш сайт связан с хранением и передачей личных данных пользователей, устанавливать сертификаты второго типа. При использовании такого сертификата сайтом, при переходе на него в строке на верхней панели браузера будет видно строку с названием организации и зеленой заливкой.

Типы сертификатов

  • Domain Validation. Самый простой тип, подтверждает только домен. Не содержит информацию о владельце.
  • Organization Validation. Сертификат с проверкой домена. Подтверждает принадлежность домена к компании, соответственно требуется чтобы доменное имя было зарегистрировано на юридическое лицо или ИП.
  • Extended Validation. Предназначается для крупных компаний, является самым надёжным. Выпуск занимает продолжительное время, т. к. компания по выпуску сертификата проводит проверку деятельности компании.
  • WildCard. Предназначен для поддержки поддоменов, так сказать «дочерних» сайтов.

Как установить SSL-Сертификат

Установка SSL-Сертификата состоит из 5 шагов.

  1. Приобретение.
  2. Генерирование CSR (Certificate Signing Request), специального запроса, в котором содержится вся необходима информация для создания сертификата.
  3. Создание.
  4. Установка на сервер или хостинг
  5. Внесение в настройку сайта.

Разберем данные пункты подробно.

Приобретение сертификата

Проще всего приобрести сертификат у вашего хостинг-провайдера, либо у удостоверяющих сервисов, таких как Comodo, Thawte, GeoTrust.

При покупке нам потребуется выбрать тип сертификата, указать домен, для которого он приобретается.

Генерирование CSR запроса

Генерируется в процессе заказа SSL-сертификата, онлайн через CSR генератор или самостоятельно на собственном веб-сервере. Первые два способа интуитивно поняты, третий способ потребует определенных навыков.

В результате вы получите два файла. Один private.key, файл приватного ключа, второй domain.csr, файл запроса. Первый нам понадобится при установке сертификата, а второй потребуется для генерации SSL-сертификата.

Правила составления запроса:

  • Данные должны быть предоставлены на английском языке.
  • При заказе SSL-Сертификата типа WildCard необходимо указывать знак звездочка перед именем домена (*domain.com).
  • Для того, чтобы работали домены с префиксом «www», необходимо указывать домен с ним (www.domain.com).
  • Указать адрес электронной почты, который требуется заранее зарегистрировать на доменное имя (admin@domain.com)

Выпуск SSL-Сертификата

На указанную электронную почту придет письмо, с помощью которого можно перейти на страницу, где нужно ввести ранее сгенерированный запрос CSR для выпуска сертификата.

Далее потребуется пройти подтверждение владения доменом. Подтверждение проходит с помощью электронной почты, которая указывалась при покупке. На почту придет либо письмо с кодом, либо с уникальной ссылкой.

После подтверждения владения, файлы SSL-Сертификата можно будет скачать, либо они окажутся на почте. Пример файлов:

  • crt – SSL-сертификат
  • crt – корневой файл
  • USERTrustRSAAddTrust.crt и подобные – промежуточные.
  • Либо все файлы будут объединены в файл .CA-BUNDLE.

Как подключить ssl сертификат к сайту

Требуется зайти в ЛК управления хостингом. Найти панель SSL.

Если SSL-сертификат куплен на хостинге, то скорее всего потребуется только связать сертификат одной кнопкой.

Если сертификат приобретен со стороннего ресурса, то потребуется загрузить все файлы: сертификат, приватный ключ, корневой сертификат, промежуточный сертификат. Отправить заявку на установку SSL

SSL в ISP панели

На панели управления зайти в раздел «SSL», нажать «Создать». Указываем тип сертификата «Существующий», нажать «Далее». Заполняем данные:

  • Название сертификата (любое на латинице, имя для отображения на панели управления).
  • SSL-Сертификат (файл).
  • Ключ SSL-Сертификата (файл приватный ключ).
  • Цепочка SSL-Сертификатов (сначала корневой сертификат, далее промежуточный).

Нажать «Завершить». Далее переходим в раздел «WWW-домены», 2 раза кликаем на нужный домен, ставим галочку напротив «Защищенное соединение (SSL)», нажимаем «Ок». Также здесь включаем переадресацию с HTTP на HTTPS.

SSL на 1C-Bitrix

Рекомендуем официальные инструкции от программистов 1С.

https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=35&LESSON_ID=3261

SSL на Apache

Понадобится 3 файла:

  • Сам сертификат, должен называться – domain.crt
  • Ключ сертификата – dkey
  • Создаем текстовый документ с названием chain.crt и в него вставляем цепочку сертификатов, сначала промежуточного, потом корневого.

Загружаем файлы в папку /etc/ssl

Открываем файл для настройки Apache сайта, на который требуется установить сертификат. Проверяем совпадает ли значение строки «ServerName» с нужным доменом.

В окончании документа копируем блок «VirtualHost», вводим порт 443 и пишем строчку:

SSLEngine on
SSLCertificateFile /etc/ssl/domain_name.crt
SSLCertificateKeyFile /etc/ssl/private.key
SSLCertificateChainFile /etc/ssl/chain.crt

Проверяем что в файле нету ошибок, вводим команду и перезагружаем Apache.

SSL на Nginx

Файл сертификата, корневой и промежуточный в один файл. Открывай любой простой текстовый редактор и поочередно помещаем в него содержимое в таком же порядке, называем domain.crt . Другой файл будет представлять собой ключ файл, domain.key. Загружаем ключ и сертификат в /etc/ssl/ или /etc/nginx/ssl/.

Меняем хост сайта, на который мы устанавливаем защиту. Изменения скорее всего вносить нужно по директории /etc/nginx/sites-available/site.conf , но могут быть и другие.

server {
listen 443 ssl;
server_name domain.com;
ssl_certificate /etc/ssl/domain.crt;
ssl_certificate_key /etc/ssl/domain.key;
}

Используя команду, проверяем текст на ошибки.

nginx -t

Чтобы настройки заработали, выполните перезагрузку Nginx.

Как настроить переадресацию

Настройка на переадресацию с http на htps.

Если вы используете Apache, то изменения нужно внести в файл .htaccess:

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301, L]

следующий вариант:

RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA, L]

в случае циклического бага:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L, R=301]

ещё одна версия:

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L, R=301]

Поздравляем, установка SSL окончена.

Проверка работы SSL-сертификата

Существует множество сервисов для проверки правильности установки SSL-Сертификата, такие как:

  • SSL Shopper
  • GlоbаlSign SSL Check
  • Quаlys SSL Lаbs
  • Free SSL Server Test
  • SSL Checker
  • HоwsMySSL
  • CОMОDО SSL Аnаlyzer