Для установки сертификата в NGINX нам потребуется два файла, а именно сам сертификат(обычно расширение .crt) и приватный ключ(обычно расширение .key). Иногда ЦС(центр сертификации) может присылать несколько файлов, где часть будет представлять цепочку сертификатов и один файл Ваш приватный ключ.
Если цепочка сертификатов представлена отдельными файлами, то следует объединить их в один по шаблону:
-----BEGIN CERTIFICATE-----
#здесь должен быть Ваш сертификат
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#здесь должен быть промежуточный сертификат
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#здесь должен быть корневой сертификат
-----END CERTIFICATE-----
Сохраняем получившийся файл как domain.crt, где domain - имя вашего домена. На самом деле как вы назовёте этот файл не имеет значение, важно содержимое, но для удобства лучше назвать в соответствии с подтверждаемым доменом.
Теперь загружаем два файла (domain.crt и domain.key) на сервер, желательно в директорию /etc/ssl/ или /etc/nginx/ssl/, но не обязательно.
Теперь настроим NGINX. Открываем файл конфигурации и в имеющейся секции server{}, описывающий Ваш домен, изменяем строчку
listen 80;
на
listen 443 ssl http2; # или просто listen 443 ssl;
ssl_certificate /etc/ssl/domain.crt;
ssl_certificate_key /etc/ssl/domain.key;
Обратите внимание: здесь указан полный путь до файлов с сертификатами и приватным ключом. Если Вы разместили эти файлы в другом месте, то и в этих строчках нужно внести изменение.
Если требуется переадресация с HTTP на HTTPS, то добавим еще одну секцию со следующим содержимым:
server {
if ($host = domain.ru) {
return 301 https://$host$request_uri;
}
listen 80;
server_name domain.ru;
return 404;
}
Соответственно заменяем domain.ru на адрес вашего сайта.
Теперь проверяем внесенные изменения:
Если здесь не вышло никаких проблем - значит мы не допустили никаких синтаксических ошибок(логические ошибки тут не проверяются). Перезапускаем NGINX:
Теперь проверяем свой сайт, заходим на него и слева от строки ввода в браузере должен быть замочек.
В дальнейшем достаточно только прописывать путь к новым сертификатам и ОБЯЗАТЕЛЬНО перезагружать NGINX.