Новости
Serverspace запустил обновленную партнерскую программу
Serverspace Black Friday
АБ
Антон Белов
января 31, 2020
Обновлено августа 8, 2022

Сертификаты SSL. Устанавливаем на Nginx

CentOS Debian SSL Ubuntu

Первым делом необходимо сгенерировать SCR-запрос через панель управления Serverspace. После этого запроса, а также после выбора необходимого сертификата, следующим логическим шагом будет установка сертификатов .CRT и .CA. Давайте подробнее остановимся на том, как устанавливать эти сертификаты на серверы Nginx и Unix-системы Ubuntu, CentOS или Debian.

Итак, после выполнения вышеперечисленных действий в разделе SSL, расположенном в панели управления Serverspace, находятся два файла .CA и .CRT.

Загрузка SSL на сервер

Файлы .CA и .CRT необходимо отправить на сервер. Часто Linux-серверы администрируют через терминал и GUI может отсутствовать. В этом случае можно отправить файлы на машину с другой ОС, а затем их перенести. Ниже мы расскажем, как это можно осуществить.

Важно: пара (закрытый и открытый ключи) должна быть сгенерирована там, куда устанавливаются сами сертификаты. Однако если они были созданы на другом компьютере, на ваш сервер следует отправить закрытый ключ (файл .key), в соответствии с описанными ниже действиями по копированию.

Перенос из Unix-систем

В данном случае самым простым вариантом будет воспользоваться встроенной опцией терминала – SCP:

1. Файлы .CA и .CRT скачиваются из панели Serverspace на ваш компьютер.
2. Открываем терминал и переходим в место скачивания сертификатов, например:

cd ~/MyDownloadedFiles

Загружаем все выданные сертификаты на веб-сервер:

scp yourtest.com_crt.crt yourtest.com_ca.crt login@121.122.222.111:/etc/ssl

Детальнее:

scp — копирует файлы;
yourtest.com_crt.crt — пример названия скачанного из панели Serverspace сертификата вашего ресурса;
yourtest.com_ca.crt — пример названия скачанного из панели Serverspace сертификата ЦА;
login — пользователь, который подключается через SSH (иногда им становится root);
121.122.222.111 – IP-адрес;
/etc/ssl – папка, в которую вы хотите отправить сохраняемые файлы.

Загрузка через операционную систему Windows

Первый шаг – устанавливаем клиент WinSCP. Скачать его можно по ссылке.

Запускаем. Откроется окно, куда необходимо ввести параметры подключения по протоколу SSH.

Слева вы увидите папки и файлы локальной машины, справа — файлы рабочего сервера, к которому подключились. Следует выбрать (либо создать, если такового нет) место, куда отправятся сертификаты. Используя функцию drag-n-drop, зажав левую клавишу мышки, переносите файлы .CA и .CRT.

Важно: удобнее будет сохранить .key в том же месте, где уже лежат файлы сертификатов. Это необязательно, но тогда вам придется запоминать расположение этого файла и указывать этот путь при конфигурации Apache, а не путь с нашего примера.

Чтобы сделать копию .key и отправить в иную директорию, в случае генерации закрытого ключа на сервере, можно воспользоваться командой:

cp /home/root/private.key /etc/ssl/private.key

При этом:

cp — отвечает за копирование;
/home/root/ — путь к файлу, если вы зашли «под рутом»;
private.key — имя файла самого ключа;
/etc/ssl/private.key — путь, куда мы хотим скопировать ключ.

Можно воспользоваться командой и удалить ключ в старой директории:

rm /home/root/private.key

Конфигурация Nginx для SSL

Когда вы сделали копии всех необходимых сертификатов, нужно сконфигурировать Nginx. Чтобы это сделать, заходим через SSH под root-ом и делаем следующее:

1. .CA (файл центра сертификации), а также .CRT (файл сайта) преобразовываем в один:

cat /etc/ssl/testdomain.com_crt.crt /etc/ssl/testdomain.com_ca.crt >> testdomain.crt

2. Открываем файл с настройками ресурса, для которого необходим сертификат SSL. Ниже пример, когда параметры находятся по адресу /etc/nginx/sites-enabled/files:

nano /etc/nginx/sites-enabled/files

Обратите внимание: на Ubuntu/Debian-дистрибутивах параметры веб-ресурсов Nginx обычно размещаются в директории /etc/nginx/sites-enabled/. В дистрибутиве CentOS стандартной директорией считается /etc/nginx/conf.d/. В системах Unix-семейства хорошо работает поиск через команду ls /папка/настройки (например, ls /etc/nginx/sites-enabled), которая откроет полный перечень файлов в каталоге.

Далее, используя утилиту nano, открываем выбранный файл (например, nano /etc/nginx/websites-enabled/file). Узнать, тот ли файл мы нашли, можно внутри server_name. Значение этой строки необходимо заменить на домен, куда устанавливается сертификат (например, website.com).

Важно для дистрибутива CentOS: в случае отсутствия редактора nano, можно установить его следующим образом:

yum install nano

Добавьте параметры из примера к вашей конфигурации:

listen 443 ssl;
ssl_certificate /etc/ssl/testdomain.crt;
ssl_certificate_key /etc/ssl/test.key;

Не забудьте поменять на ваши:
/etc/ssl/test.crt — прописать расположение ваших сертификатов;
/etc/ssl/test.key — прописать расположение закрытого ключа.

Сделаем рестарт:

Рестарт на Debian и Ubuntu:

/etc/init.d/nginx restart

Рестарт на CentOS:

service nginx restart

Допустим, у вас есть настроенный iptables firewall. В этом случае следует открыть 443 порт. Просто обратитесь к документации той системы, которую используете. Различные дистрибутивы Linux могут работать с iptables по-своему. Вот пара примеров:

Для CentOS пишем:

iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Ubuntu 16.04 более лаконичен:

ufw allow 443/tcp

В Debian пишем следующее:

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

Проверяем настройки

После всех проведенных манипуляций на вашем Apache имеются готовые сертификаты SSL. Дабы удостовериться в правильности всех конфигураций, откройте ваш ресурс через любой браузер, добавив к адресу сайта (например, http://yourwebsite.com) букву s, чтобы получилось так: https://yourwebsite.com. Если вы сделали всё правильно, возле URL-адреса сайта будет отображен «замок». Если вы нажмете на замок, то получите информацию об SSL-сертификате.

Подборки SSL-сертификатов: DV сертификат для домена, EV сертификат "зеленая строка", WC сертификат для поддоменов, SAN мультидоменный сертификат.

Оценка:
5 из 5
Аverage rating : 5
Оценок: 2
050000 г. Алматы пр. Сейфуллина, д. 502
+7 (777) 555-36-66
ООО «ИТГЛОБАЛКОМ ЛАБС»