Задать вопрос
Все статьи / SSL / Заказ и установка SSL / Установка SSL-сертификата на Nginx
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

Установка SSL-сертификата на Nginx

В этой статье мы расскажем о том, как установить SSL-сертификат на Nginx. Но сначала дадим понятие SSL-сертификата и объясним, как он устроен.

Что такое SSL-сертификат

SSL-сертификат — это цифровой документ, который хранит в себе информацию о домене и его владельце. Если вы переходите на ресурс и видите значок замка и https:// в адресной строке браузера, значит, на сайте используется SSL-сертификат.

Главное назначение сертификата безопасности — защитить данные от перехвата третьими лицами. Это возможно благодаря криптографическому протоколу TLS — «современнику» SSL-протокола (protocol SSL), в честь которого SSL-сертификат получил название. Он шифрует данные перед их передачей.

Помимо этого SSL-сертификаты используются, чтобы:

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

После установки SSL-сертификата сайт начинает работу по протоколу HTTPS, который поддерживает шифрование информации и работает поверх криптографического TLS. В чем отличие TLS от HTTPS? TLS кодирует передаваемые данные, а HTTPS — канал, по которому они передаются.

SSL-сертификат необходим для сайта, на котором пользователи оставляют личные данные (например, номер телефона или email) или указывают данные банковских карт для оплаты.

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

Перед установкой нужно получить все части SSL-сертификата:

  • сертификат,
  • приватный ключ,
  • промежуточный сертификат,
  • корневой сертификат.

Далее нужно выполнить несколько подготовительных действий на компьютере:

  1. Создайте файл с названием domain_name.crt (вместо domain_name укажите домен, для которого заказан сертификат). Добавьте в него сертификат, промежуточный и корневой сертификаты. Итоговая версия файла должна иметь следующий вид:
-----BEGIN CERTIFICATE-----
сертификат
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
промежуточный_сертификат
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
корневой_сертификат
-----END CERTIFICATE-----
  1. Создайте второй файл с названием domain_name.key (вместо domain_name укажите домен, для которого заказан сертификат). Добавьте в него содержимое приватного ключа.
  2. Создайте файл с названием ca.crt и добавьте в него содержимое корневого сертификата.

Готово.

Следующие шаги — это установка и настройка SSL-сертификата на Nginx. 

Чтобы установить сертификат:

  1. Подключитесь к серверу по SSH.
  2. Загрузите созданные файлы на сервер. Это нужно сделать в следующую директорию:
/etc/ssl/

Также возможен вариант:

/etc/nginx/ssl/domain.ru

Вместо domain.ru укажите директорию вашего домена.

  1. Откройте конфигурационный файл Nginx. Для этого выполните одну из команд в зависимости от расположения файла на сервере:
sudo nano /usr/local/nginx/conf
sudo nano /etc/nginx
sudo nano /usr/local/etc/nginx
  1. В файле конфигурации Nginx добавьте блок для работы сайта по HTTPS:
server {
 listen 443 ssl;
    server_name domain.ru;
    ssl_certificate /etc/ssl/domain_name.crt;
    ssl_certificate_key /etc/ssl/domain_name.key;

Где:

  • domain.ru — доменное имя сайта,
  • domain_name.crt — путь к файлу с публичным ключом,
  • domain_name.key — путь к файлу с приватным ключом.
  1. Если вам нужно, чтобы был доступен протокол HTTP, добавьте дополнительную директиву listen:
listen 80;
  1. Далее необходимо оптимизировать работу HTTPS-сервера Nginx: для этого в секции server добавьте строки: 
ssl_session_cache   shared:SSL:10m;
ssl_session_timeout 10m;
keepalive_timeout 70;

Где:

  • shared:SSL:10m — тип кэша и его размер,
  • ssl_session_timeout 10m — таймаут кэша,
  • keepalive_timeout 70 — время одного соединения.
  1. Укажите протоколы TLS (SSL), версии которых должен поддерживать сервер:
ssl_protocols TLSv1 TLSv1.2 TLSv1.3;
  1. Для выбора серверных шифров в качестве приоритетных добавьте строку:
ssl_prefer_server_ciphers on;
  1. Чтобы страницы сайта загружались быстрее, нужно:
  • позволить серверу прикреплять OCSP-ответы для проверки статуса SSL-сертификата,
  • указать путь к корневому сертификату,
  • добавить адрес корневого DNS-сервера.

Для настройки этих параметров добавьте строки:

ssl_stapling on;
ssl_trusted_certificate /etc/ssl/domain.ru/ca.crt;
resolver 1.1.1.1;

Где:

  • /etc/ssl/domain.ru/ca.crt — путь к файлу корневого сертификата, 
  • 1.1.1.1 — адрес корневого DNS-сервера.
  1. Проверьте содержимое конфигурационного файла. Оно будет иметь следующий вид:
server {
listen 443 ssl;
listen 80;
server_name domain.ru;
ssl_certificate /etc/ssl/domain.ru/domain_name.crt;
ssl_certificate_key /etc/ssl/domain.ru/domain_name.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/domain.ru/ca.crt;
resolver 1.1.1.1;
}

После проверки сохраните изменения с помощью комбинации клавиш Ctrl + O. Затем закройте файл, используя Ctrl + X.

  1. Чтобы изменения вступили в силу, нужно перезагрузить веб-сервер Nginx. Для этого выполните команду:
sudo /etc/init.d/nginx restart

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

Как проверить работу SSL-сертификата

Важно, чтобы все настройки SSL были корректны — только так обмен данными будет безопасным. Проверить работу сертификата можно с помощью онлайн-сервисов. В качестве примера рассмотрим домен sweb.ru и сервис проверки SSLShopper.

Чтобы убедиться в том, что SSL-сертификат работает корректно:

  1. Перейдите на сайт sslshopper.com.
  2. Введите доменное имя и кликните Check SSL:

  1. Убедитесь в том, что все пункты списка отмечены зеленой галочкой:

  1. Также проверьте валидность всех компонентов SSL-сертификата:

Если на одном из этапов проверки возникает ошибка, проверьте:

  • активен ли сам сертификат — возможно, он требует продления,
  • корректно ли прошла установка.

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

Предыдущая статья
Установка SSL-сертификата на Apache
Следующая статья
Установка SSL-сертификата на VPS