Купить Корзина
  • Домены и сайты
  • Облако и IT-инфраструктура
  • Вход
  • Телефон в Москве

    +7 495 580-11-11
  • Бесплатный звонок по России

    8 800 555-34-78
  • Или обратитесь в наши офисы

    Региональные номера
    1. База знаний
    2. SSL-сертификаты
    3. 3 этап: Установка SSL-сертификата
    4. Как настроить SSL-сертификат на Nginx

    Как настроить SSL-сертификат на Nginx

    В статье мы рассмотрим, как установить SSL-сертификат на веб-сервер Nginx.

    Перед установкой SSL убедитесь, что вы его заказали. Затем перейдите в личный кабинет, кликните по строке нужного SSL-сертификата и убедитесь, что у услуги статус «Активна»:

    как установить сертификат на vps 1

    Если услуга неактивна, используйте инструкцию в зависимости от типа сертификата: Как активировать сертификаты: AlphaSSL и DomainSSL или Как активировать сертификаты: OrganizationSSL и ExtendedSSL.

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

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

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

    Рассмотрим, как выполняется установка и настройка Nginx SSL:

    • 1

      Объедините три сертификата (ваш SSL-сертификат, промежуточный и корневой сертификаты) в один файл. Для этого создайте на ПК новый текстовый документ с именем your_domain.crt (your_domain — доменное имя сайта, который вы хотите защитить). Создать его можно при помощи блокнота или другого текстового редактора. Поочередно скопируйте и вставьте в созданный документ каждый сертификат. После вставки всех сертификатов файл должен иметь вид:

      -----BEGIN CERTIFICATE-----
      #Ваш сертификат#
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      #Промежуточный сертификат#
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      #Корневой сертификат#
      -----END CERTIFICATE-----

      Обратите внимание: один сертификат идёт следом за другим, без пустых строк.

    • 2
      Создайте файл your_domain.key и скопируйте в него содержание приватного ключа сертификата.
    • 3
      Загрузите созданные файлы your_domain.crt и your_domain.key на сервер в директорию /etc/ssl/. Директория может быть иной, например /etc/nginx/ssl/your_domain.com.
    • 4

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

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

      Где:

      • your_domain.com — домен сайта,

      • /etc/ssl/your_domain.crt — путь до созданного файла с тремя сертификатами,

      • /etc/ssl/your_domain.key — путь до файла с приватным ключом.

      Минимальная установка и настройка выполнена. Далее вы можете добавить расширенные настройки конфигурационного файла либо сразу перейти к шагу 12.

    • 5

      Если вы хотите, чтобы сайт работал не только по защищённому соединению (https://), но и по незащищенному (http://), то нужно создать единый HTTP/HTTPS сервер. Для этого в конфигурационном файле Nginx необходимо иметь две секции server{} для каждого типа соединения.

      Добавьте в секцию server{}, которую вы создали на шаге 4, следующую строку:

      listen 80;
    • 6

      Также вы можете дополнительно оптимизировать работу Nginx HTTPS-сервера. SSL-операции задействуют дополнительные ресурсы сервера. Чтобы снизить количество операций, можно повторно использовать параметры SSL-сессий. Они хранятся в кеше SSL-сессий. Можно задать тип кеша (в примере это shared-кеш, разделяемый между всеми рабочими процессами) и его размер в байтах (в 1 Мб кеша помещается около 4000 сессий) с помощью директивы ssl_session_cache. Также можно увеличить таймаут кеша (время, в течение которого клиент повторно использует параметры сессии) директивой ssl_session_timeout: по умолчанию он равен 5 минутам. Можно настроить время работы одного keepalive-соединения с помощью директивы keepalive_timeout.

      Добавьте в конфигурационном файле в секции server{} строки:

      ssl_session_cache   shared:SSL:10m;
      
      ssl_session_timeout 10m;
      
      keepalive_timeout 70;
    • 7

      Вы можете указать протоколы SSL, которые поддерживает сервер:

      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    • 8

      Чтобы при использовании протоколов SSLv3 и TLS серверные шифры были более приоритетны, чем клиентские, добавьте следующую строку:

      ssl_prefer_server_ciphers on;
    • 9

      Чтобы уменьшить время загрузки страниц у пользователей сайта, нужно разрешить серверу прикреплять OCSP-ответы для валидации сертификата. При этом необходимо указать путь к файлу корневого сертификата и DNS-сервер. Создайте файл ca.crt и скопируйте в него содержимое корневого сертификата. Загрузите этот файл на сервер в директорию, где хранятся ранее созданные файлы. В нашем примере это /etc/ssl/.

      Затем добавьте в конфигурационном файле в секции server{} строки:

      ssl_stapling on;
      
      ssl_trusted_certificate /etc/ssl/ca.crt;
      
      resolver 8.8.8.8;

      Где:

      • /etc/ssl/ca.crt — путь до файла с корневым сертификатом,

      • 8.8.8.8 — DNS-сервер.

    • 10
      Сохраните и закройте конфигурационный файл Nginx.
    • 11

      Если вы не остановились на шаге 4, то секция server{} в конфигурационном файле с расширенными настройками будет выглядеть так:

      server {
      
      listen 443 ssl;
      
      listen 80;
      server_name your_domain.com;
        ssl_certificate /etc/ssl/your_domain.crt;
      ssl_certificate_key /etc/ssl/your_domain.key;
      ssl_session_cache shared:SSL:10m;
      ssl_session_timeout 10m;
      keepalive_timeout 70;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_prefer_server_ciphers on;
      ssl_stapling on;
      ssl_trusted_certificate /etc/ssl/ca.crt;
      resolver 8.8.8.8;
      }
    • 12

      Чтобы изменения вступили в силу, перезагрузите сервер Nginx:

      sudo /etc/init.d/nginx restart

    Готово, вы установили SSL-сертификат на Nginx.

    Помогла ли вам статья?

    Спасибо за оценку. Рады помочь 😊

     👍
    Специальные предложения
    • Бесплатный хостинг для сайта
    • Дешевый хостинг
    • Бесплатный VPS-сервер
    • Дешёвые VPS
    Рассылка Рег.ру

    Лайфхаки, скидки и новости об IT

    Даю согласие на получение рекламных и информационных материалов

    Домены и сайты
    • Домены
    • Хостинг
    • Создание сайтов
    • SSL-сертификаты
    • VPS и VDS серверы
    • Whois
    • Магазин доменов
    Облако
    и IT-инфраструктура
    • Облачные серверы
    • Частное облако
    • Облачное хранилище
    • Kubernetes в облаке (K8S)
    • Облачные базы данных
    • Выделенные серверы
    Полезное
    • Стоимость услуг
    • Cпособы оплаты
    • База знаний
    • Документы
    • ЭДО
    • Партнерам
    • Сообщить о нарушении
    • РБК: новости России и мира сегодня
    • Новости компаний РФ
    • РБК Инвестиции: курсы валют
    Компания
    • О компании
    • Контакты
    • Офисы
    • Новости
    • Акции и скидки
    • Блог
    • Отзывы клиентов
    8 800 555-34-78 Бесплатный звонок по России
    +7 495 580-11-11 Телефон в Москве
    • vk
    • telegram
    • ok
    • moikrug
    • youtube
    • twitter
    • Облачная платформа Рег.ру включена в реестр российского ПО Запись №23682 от 29.08.2024
    • © ООО «РЕГ.РУ»
    • Политика конфиденциальности
      Политика обработки персональных данных
      Правила применения рекомендательных технологий
      Правила пользования
      и другие правила и политики
    • Нашли опечатку?
      Выделите и нажмите Ctrl+Enter
    • Мы используем cookie и рекомендательные технологии для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера