Как настроить SSL-сертификат на Nginx
В статье мы расскажем, как установить SSL-сертификат на веб-сервер Nginx и опишем дополнительные настройки Nginx HTTPS.
Если вы заказывали SSL-сертификат на 2domains.ru, перед установкой проверьте статус сертификата в личном кабинете:
1. В списке услуг нажмите на сертификат.
2. Найдите статус рядом с названием сертификата:
Если статус услуги “Активная”, переходите к установке. Если услуга неактивна, активируйте сертификат.
Установка SSL на Nginx
Инструкция по установке SSL на Nginx подойдёт не только для сертификатов, купленных в 2DOMAINS, но и для сертификатов других провайдеров.
Чтобы установить и настроить SSL на Nginx:
1. В директории /etc/ssl/ создайте файл с названием domain.crt (вместо domain введите доменное имя) и откройте его в текстовом редакторе. Вставьте в файл содержимое сертификатов в следующем порядке: сертификат, промежуточный сертификат и корневой сертификат. Структура файла должна выглядеть так:
-----BEGIN CERTIFICATE-----
#Файл сертификата#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Промежуточный сертификат#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Корневой сертификат#
-----END CERTIFICATE-----
В файле не должно быть пустых строк.
Обратите внимание: если директория /etc/ssl/ отсутствует, создайте её при помощи команды:
sudo mkdir /etc/ssl/
2. В директории /etc/ssl/ создайте файл domain.key (domain — ваш домен). Откройте его в текстовом редакторе и вставьте в него приватный ключ. В файле приватного ключа не должно быть пустых строк.
3. Откройте файл конфигурации Nginx nginx.conf и измените виртуальный хост вашего сайта. Для этого добавьте в файл строки:
server {
listen 443 ssl;
server_name domain;
ssl_certificate /etc/ssl/domain.crt;
ssl_certificate_key /etc/ssl/domain.key;
}
Вместо domain укажите доменное имя вашего сайта и сохраните изменения в файле.
4. Примените изменения в конфигурационном файле:
sudo nginx -s reload
Или:
systemctl reload nginx
Готово, сертификат установлен.
Настройка Nginx SSL
Рассмотрим дополнительные настройки защищенного соединения:
- Чтобы сайт работал не только по защищённому протоколу HTTPS, но и по обычному HTTP, откройте конфигурационный файл и под строку “listen 443 ssl” добавьте ещё одну строку:
listen 80;
- С SSL-сертификатом сервер тратит больше ресурсов, чем без него. Вы можете оптимизировать работу веб-сервера Nginx при помощи кеша SSL-сессий. Для этого добавьте в конфигурационный файл строки:
ssl_session_cache shared:SSL:10m; # 10 МБ кеша, разделяемого между рабочими процессами
ssl_session_timeout 10m; # таймаут кеша, в течение которого параметры сессии используются повторно
keepalive_timeout 70; # время работы одного соединения
- Укажите протоколы TLS, с которыми будет работать сервер:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
- Повысьте приоритет серверных шифров над клиентскими:
ssl_prefer_server_ciphers on;
- Чтобы сократить время загрузки страниц, разрешите серверу прикреплять OCSP-ответы для проверки сертификата. Для этого создайте файл /etc/ssl/ca.crt и добавьте в него содержимое корневого сертификата. После этого откройте конфигурационный файл и добавьте строки:
ssl_stapling on; #разрешает отправку OCSP-ответы
ssl_trusted_certificate /etc/ssl/ca.crt; # путь до корневого сертификата
resolver 8.8.8.8; # DNS-сервер
После изменений, которые вы внесли, сохраните файл конфигурации. Затем примените новую конфигурации при помощи команд:
sudo nginx -s reload
Или:
systemctl reload nginx
Готово, вы установили SSL-сертификат и настроили Nginx для работы с ним.