Как настроить 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 для работы с ним.

Если вы не нашли ответ, спросите у нас!
Написать в поддержку