Интересные статьи
Домены
Главная страница / Linux / CentOS / Установка SSL сертификата на nginx

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

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

В зависимости от того, какие данные предоставил центр сертификации клиенту, установку можно разбить на несколько пунктов:

  1. У вас есть приватный ключ, а также цепочка сертификатов (сам SSL сертификат + промежуточный + корневой сертификаты). Обычно это 2 файла с расширениями key (приватный ключ) и crt (цепочка сертификатов)
  2. У вас есть приватный ключ, сам SSL сертификат, а также цепочка сертификатов (промежуточный+корневой). Обычно это файлы с расширениями key (приватный ключ) и 2 файла с расширением crt (сертификат и цепочка сертификатов соответственно)
  3. У вас есть приватный ключ, сам SSL сертификат, а также промежуточный и корневой сертификат т.е. 4 элемента по отдельности. Обычно это файлы с расширениями key и 3 файла с расширением crt.
  4. У вас есть сертификат в другом формате, например pfx
Помимо этого может быть файл с запросом на сертификат, обычно в формате csr

Приступим к разбору каждого пункта

Как происходит Установка SSL сертификата на nginx

1. У вас есть приватный ключ, а также цепочка сертификатов

Подготовка к установке

Наилучший вариант т.к. потребуется только указать эти данные в конфигурации nginx и перезапустить его.

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

Будем считать, что приватный ключ имеет имя private.key, а цепочка сертификатов CAbundle.crt

Создадим директорию ssl в nginx:

[root@server ~]# mkdir /etc/nginx/ssl

Далее скопируйте файл приватного ключа и цепочку сертификатов в директорию /etc/nginx/ssl/

[root@server ~]# mv private.key CAbundle.crt /etc/nginx/ssl

После этого откройте файл конфигурации виртуального хоста nginx в редакторе и измените значения строк ssl_certificate и ssl_certificate_key

Например (вариант при использовании LetsEncrypt:

Было:

ssl_certificate /etc/letsencrypt/live/site.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem;

Стало:

ssl_certificate /etc/nginx/ssl/private.key;
ssl_certificate_key /etc/nginx/ssl/CAbundle.crt;

Не забудьте про точку с запятой (;) в конце каждой из строк

Сохраните файл и перезагрузите nginx

[root@server ~]# systemctl restart nginx

2. У вас есть приватный ключ, сам SSL сертификат, а также цепочка сертификатов

Подготовка к установке

Данный вариант отличается от первого только тем, что нужно добавить цепочку сертификатов в сам SSL сертификат.

Будем считать, что SSL сертификат имеет имя site_ru.crt, а цепочка сертификатов CA.crt

В таком случае объединение файлов можно выполнить так:

Перейдем в директорию, где расположены данные файлы (например /root/site_certs/)

[root@server ~]# cd /root/site_certs/

Объединим файлы

[root@server certs]# cat CA.crt >> site_ru.crt

Далее выполните действия по установке сертификата: Установка SSL сертификата на nginx

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

Подготовка к установке

Данный вариант отличается от первого только тем, что нужно объединить все сертификаты (SSL сертификат, промежуточный и корневой) в одну цепочку.

Будем считать, что SSL сертификат имеет имя site_ru.crt, корневой сертификат CAroot.crt, промежуточный сертификат CAintermediate.crt

В таком случае объединение файлов можно выполнить так:

Перейдем в директорию, где расположены данные файлы (например /root/site_certs/)

[root@server ~]# cd /root/site_certs/

Объединим файлы

[root@server certs]# cat CAroot.crt CAintermediate.crt >> site_ru.crt

Далее выполните действия по установке сертификата: Установка SSL сертификата на nginx

4. У вас есть сертификат в другом формате, например pfx

Подготовка к установке

Данный вариант отличается от первого только тем, что цепочка сертификатов и приватный ключ уже содержатся в pfx сертификате и осталось только конвертировать его.

Будем считать, что SSL сертификат имеет имя cert.pfx

В таком случае получить необходимые файлы можно выполнить так:

Перейдем в директорию, где расположен данный файл (например /root/site_certs/)

[root@server ~]# cd /root/site_certs/

Получим цепочку сертификатов

[root@server certs]# openssl pkcs12 -in cert.pfx -clcerts -nokeys -out public.crt

Получим приватный ключ

[root@server certs]# openssl pkcs12 -in cert.pfx -nocerts -nodes -out private.key

Далее выполните действия по установке сертификата: Установка SSL сертификата на nginx

Обо мне cyber01

Прочитайте также

Как установить Python 3 из исходников на Ubuntu 18.04

В этой статья я расскажу вам как установить Python 3 из исходников в Ubuntu 18.04, …

Как удалить все записи о вложениях за определенный период

Как удалить все записи о вложениях за определенный период DELETE FROM wp_postmeta WHERE post_id IN …

Установка VNC на CentOS 7

Установка VNC на CentOS 7 VNC часто бывает необходим при установке новой ОС на сервер …

2 комментария

  1. Спасибо, все очень четко и понятно.
    Хотелось бы уточнить по поводу упомянутого в статье случая:
    “… Помимо этого может быть файл с запросом на сертификат, обычно в формате csr”
    Что необходимо сделать в этом случае?

    • А собственно ничего т.к. он является первым элементом/пунктом в получении сертификата. Далее он не требуется.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *