Как правильно настроить ssl сертификат

Содержание
  1. Правильная настройка SSL в NGINX
  2. 1. Правильный сертификат
  3. Доверенный центр
  4. Сертификат для домена
  5. 2. Использование всей цепочки сертификатов
  6. 3. Отключение устаревших протоколов
  7. 4. Задаем приоритет для серверных шифров
  8. 5. Настройка более стойкого ключа Диффи-Хилмана
  9. (Опционально) Перенаправление с 80 на 443
  10. Как установить SSL-сертификат на сайт
  11. Подтверждение прав владения доменом
  12. Txt запись в DNS
  13. Cname запись в DNS
  14. Подтверждение с помощью доменной почты
  15. Файл на сервере
  16. После подтверждения
  17. Установка сертификата через административную панель хостинга
  18. Установка существующего сертификата с помощью административной панели хостинга
  19. Установка Let’s Encrypt с помощью административной панели хостинга
  20. Установка сертификатов в ISP панели
  21. Установка существующего сертификата в ISP manager
  22. Установка Let’s Encrypt с помощью ISP manager
  23. Проверка правильности установки
  24. Заключение

Правильная настройка SSL в NGINX

В данной инструкции разберем принцип правильной настройки поддержки https в веб-сервере NGINX, которая пройдет проверку безопасности с присвоением максимальной категории. Тестировать конфигурацию мы будем с помощью сервиса https://www.ssllabs.com/ssltest/ — наша задача получить категорию А:

Статья не рассчитана на новичков — вы должны понимать общие принципы настройки https в NGINX. Команды, приведенные в данном руководстве выполняются на системе Linux. Для Windows принцип настройки остается таким же, за исключением конкретных команд и путей до конфигурационных файлов.

Для достижения результата мы рассмотрим:

1. Правильный сертификат

Под этим подразумевается выполнение двух условий:

  1. Сертификат должен быть выпущен доверенным центром.
  2. Сертификат должен быть выдан для домена, к которому идет подключение.

Доверенный центр

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

Для получения сертификата от правильного центра, необходимо за него заплатить или получить бесплатно от Let’s Encrypt. Купить сертификат можно у большинства хостеров или регистраторов доменных имен. Для получения бесплатного сертификата можно воспользоваться инструкцией Получение бесплатного SSL сертификата Let’s Encrypt.

И наоборот, сертификат может быть выпущен не доверенным центром или локально на компьютере (самоподписанный). В таком случае мы получим ошибку при проверке подлинности.

Сертификат для домена

Заказывая сертификат, мы обязательно указываем, для какого доменного имени его будем использовать. Это обязательное требование. Например, если мы хотим настроить SSL-подключение к узлу security.dmosk.ru, то необходимо указывать именно это имя при заказе ключа безопасности. В противном случае, браузер будет выдавать нам ошибку, что сертификат выдан для другого узла.

Также мы можем заказать сертификат типа wildcard — он применим к домену и все его поддоменам. Например, в нашем случае мы можем заказать ключ для *.dmosk.ru — он будет применять для любого доменного имени 3-го уровня с корнем dmosk.ru.

2. Использование всей цепочки сертификатов

Применяя сертификат в NGINX, необходимо загрузить не только сертификат для домена, но и для всех центров сертификации — как основного, так и промежуточных. В противном случае, мы получим ошибку This server’s certificate chain is incomplete. Grade capped to B:

Читайте также:  Настроить биос для нетбука

В случае покупки сертификата, нам отправляют все ключи в отдельных файлах. Цепочка сертификатов, как правило, идет в файле chain. Мы должны скопировать последовательность в данном файле и добавить ее к содержимому в файле с сертификатом домена — получиться файл, содержащий как последовательность для домена, так и всех центров. Назвать его можно fullchain.pem.

В случае получение бесплатного сертификата от Let’s Encrypt, мы получаем 4 файла, один из которых называется fullchain.pem — именно он и содержит все необходимые последовательности.

И так, при настройке виртуального домена в NGINX, необходимо указать путь до файла, содержащего в себе все ключи, например:

server <
listen 443;
server_name security.dmosk.ru;
ssl on;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/cert.key;

* в данном примере мы настраиваем NGINX для домена security.dmosk.ru; обратите внимание, что мы указали путь до файла fullchain.pem, в котором должны находиться последовательности, как для домена, так и центров сертификации.

Не забываем перезапустить nginx:

systemctl restart nginx

3. Отключение устаревших протоколов

В случае, если наш веб-сервер поддерживает подключение с использованием устаревших протоколов безопасности, например, TLS 1.0, мы получим ошибку This server supports TLS 1.0 and TLS 1.1:

В NGINX нам необходимо перечислить протоколы, по которым разрешено подключение. Лучше всего это сделать в основном конфигурационном файле:

Внутри раздела http добавим:

* в данном примере мы указали, что разрешены подключения только по TLS версии 1.2.

Не забываем перезапустить nginx:

systemctl restart nginx

4. Задаем приоритет для серверных шифров

Нам необходимо указать, чтобы при использовании протокола TLS серверные шифры были приоритетнее, чем клиентские. В противном случае мы увидим ошибку This server does not support Forward Secrecy with the reference browsers:

Задать настройку можно в разделе http основного конфигурационного файла:

http <
.
ssl_prefer_server_ciphers on;
..
>

Не забываем перезапустить nginx:

systemctl restart nginx

5. Настройка более стойкого ключа Диффи-Хилмана

Для шифрования сессий NGINX использует DH-шифры. Если последовательность не достаточно стойкая (ниже 2048 бит), мы увидим ошибку This server supports weak Diffie-Hellman (DH) key exchange parameters:

Чтобы исправить ошибку, генерируем стойкую последовательность для Diffie-Hellman файла:

openssl dhparam -out /etc/nginx/dh2048.pem 2048

В настройках NGINX (разделе http) добавляем:

Не забываем перезапустить nginx:

systemctl restart nginx

(Опционально) Перенаправление с 80 на 443

Стоит добавить настройку для перенаправления запроса с http на https. Для этого в настройке виртуального домена в NGINX добавим:

Источник

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

Если слова https или ssl вам не знакомы, советую сначала изучить данную статью, после чего приступить к этой. В материале будет рассмотрена практическая часть установки ssl-сертификата с минимальной теоретической частью.

Обратите внимание! Пункт 4 в инструкции по переезду на HTTPS неактуален, яндекс отказался от использования директивы host. Сейчас взамен этого необходимо настроить 301 редирект или канонические адреса, подробнее в Яндекс.Помощи.

Существует большое количество методов установки ssl-сертификата, в этой статье осветим наиболее распространенные.

Читайте также:  Приложение чтобы настроить джойстик

Но перед установкой стоит рассмотреть еще один важный вопрос, как подтвердить право владения доменом.

Подтверждение прав владения доменом

Необходимо пройти процесс валидации домена для выпуска сертификата. С помощью этой процедуры подтверждается право на владение доменом.

Возможны последующие проверки:

  • проверка организации;
  • расширенная проверка.

Мы рассмотрим только процесс доменной валидации. О таких вещах, как обратный звонок и разговор с сотрудником сертификационного центра, проверка организации через государственный реестр организаций, нет смысла говорить в рамках этой статьи, они не содержат технической части.

Txt запись в DNS

Вам будет предложено добавить запись типа TXT в DNS записи домена

Рассмотрим, как это делается в isp manager

Во вкладке домены нужно выбрать доменные имена

Просмотреть NS записи домена

Создать новую ресурсную запись

Выбрать тип txt и в поле «Значение» вставить текст записи

TXT запись может появиться не сразу, обычно это происходит в течение часа.

Проверить DNS записи домена можно с помощью утилиты dig. Сервисов существует много, возьмем, например, этот.

В поле домен нужно вписать название вашего домена. Можно выбрать конкретный тип записи, но в примере для наглядности выбрали показ всех записей. В таблице будет выведен список всех ресурсных записей, если в списке появилась запись, которую вы добавили, все было сделано верно. Если нет, вернитесь на шаг назад и перепроверьте записи.

После добавления записи не забудьте вернуться в административную панель хостинга и нажать кнопку «Проверить добавление записи».

Cname запись в DNS

Нужно будет сделать то же самое, что и в предыдущем пункте, только выбрав тип записи CNAME.

Запись имеет вид:

_hash.yourdomain.com CNAME hash.comodoca.com.

Yourdomain.com – имя вашего домена

Подтверждение с помощью доменной почты

При выборе этого способа подтверждения на административную доменную (например, [email protected]ИМЯ ДОМЕНА, [email protected]ИМЯ ДОМЕНА) почту придет письмо от центра сертификации со ссылкой для подтверждения.

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

Файл на сервере

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

После подтверждения

В большинстве случаев вам на почту придет 3 файла (или они будут в личном кабинете регистратора ssl-сертификата).

Если файлы придут на почту, обязательно сохраните себе эти файлы! В случае утери нужно будет делать переиздание сертификата.

.key – Приватный ключ (Private Key)

.crt – файл сертификата, который мы вам выдали.

.ca-bundle – файл, содержащий корневые и промежуточные сертификаты в определенном порядке. Порядок:

  • Промежуточный сертификат 2
  • Промежуточный сертификат 1
  • Корневой сертификат

Когда получены эти файлы, можно приступать к установке сертификата.

Установка сертификата через административную панель хостинга

Большинство компаний, предоставляющих услуги хостинга, в административной панели имеют или пункт SSL, или ssl-сертификаты, или безопасность – названий может быть множество.

Читайте также:  Не работает парктроник ягуар xf

Как правило, при переходе в этот пункт вам будет предложен выбор: установить существующий сертификат или же заказать(приобрести) новый сертификат.

Установка существующего сертификата с помощью административной панели хостинга

Рассматривать установку будем на примере хостинга timeweb.

Необходимо в личном кабинете зайти в пункт меню ssl-сертификаты

Выбрать пункт «Установить»

Ввести данные сертификата в соответствующие поля

Установка Let’s Encrypt с помощью административной панели хостинга

Необходимо в личном кабинете зайти в раздел меню ssl-сертификаты и выбрать пункт «Заказать».

Кликнуть пункт «SSL Let’s Encrypt», затем выбрать, для какого домена выпустить сертификат

Установка сертификатов в ISP панели

В некоторых случаях для управления хостингом/сервером устанавливается ISP manager. Это панель управления веб-хостингом, позволяющая управлять программным обеспечением веб-сервера, сервером баз данных, почтовым сервером и другими.

Установка существующего сертификата в ISP manager

Рассмотрим ситуацию, когда вы приобрели сертификат и имеете в сохраненном виде все его файлы.

В меню isp manager выбрать пункт ssl-сертификаты

Выбрать тип ssl-сертификата – «Существующий»

Заполнить соответствующие поля в isp manager

Важно! Необходимо заполнить все поля, чтобы в дальнейшем не возникло проблем. В случае некорректной установки ssl-сертификата Яндекс.Вебмастер пришлет уведомление об ошибке.

О методе проверки корректности установки сертификата описано в конце статьи.

Установка Let’s Encrypt с помощью ISP manager

Панель isp предоставляет возможность установки бесплатного автопродляемого сертификата Let’s Encrypt. Для его установки необходимо выполнить следующие действия:

В меню isp manager выбрать раздел «SSL-сертификаты», в нем выбрать Let’s Encrypt

Выбрать домен, на который будет установлен сертификат (если вам необходим Wildcard сертификат, нужно установить соответствующую галочку).

Проверка правильности установки

Узнать, корректно ли вы установили сертификат, можно с помощью сервиса – sslshopper.com.

На главной странице сервиса будет поле check ssl, в нем нужно прописать адрес вашего сайта.

Если все правильно, вы увидите примерно такую картину:

1ps.ru resolves to 5.196.172.52 ip адрес домена
Server Type: nginx/1.12.2 тип сервера
The certificate should be trusted by all major web browsers (all the correct intermediate certificates are installed) говорит о том, что правильно установлены промежуточные сертификаты
The certificate was issued by кем выдан сертификат
The certificate will expire in 651 days сколько дней осталось до окончания сертификата
The hostname (1ps.ru) is correctly listed in the certificate. имя хоста совпадает с именем хоста прописаным в сертификате

Если сертификат не установлен, вы увидите ошибку:

В случае нарушения цепочки сертификатов всплывет такая ошибка:

Заключение

Конечно, обо всех нюансах установки ssl-сертификатов не получится рассказать в рамках одной статьи. Но мы рассмотрели основы, в большинстве административных панелей хостингов алгоритм установки примерно одинаковый. После проделанной работы обязательно проверьте корректность установленного сертификата.

Если у вас возникли проблемы с установкой или работоспособностью ssl-сертификата, обращайтесь к нам за помощью! А приобрести SSL-сертификат вы можете прямо сейчас по этой ссылке.

Источник

Оцените статью