Выбор и создание 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 шагов.
- Приобретение.
- Генерирование CSR (Certificate Signing Request), специального запроса, в котором содержится вся необходима информация для создания сертификата.
- Создание.
- Установка на сервер или хостинг
- Внесение в настройку сайта.
Разберем данные пункты подробно.
Приобретение сертификата
Проще всего приобрести сертификат у вашего хостинг-провайдера, либо у удостоверяющих сервисов, таких как 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