Сертификаты SSL. Устанавливаем на Nginx
Первым делом необходимо сгенерировать 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 мультидоменный сертификат.