- Ssl-сертификат let’s encrypt
- Генерация сертификата let’s encrypt
- Загрузка ssl на сервер
- Загрузка через операционную систему windows
- Запуск утилиты putty.exe
- Конфигурация nginx для ssl
- Перенос из unix-систем
- Подготовка к генерации сертификата
- Подготовка к установке
- Проверяем настройки
- Создание директории и загрузка скрипта
- Установка
- Установка и обновление ssl-сертификата
Ssl-сертификат let’s encrypt
Let’s Encrypt — это бесплатный, автоматизированный и открытый сертификат, предоставляемый некоммерческой исследовательской группой Internet Security Research Group (ISRG). Он выпускается сроком на 90 дней, после чего требуется его обновление.
Хостинг-провайдеры Beget и Timeweb предоставляют своим клиентам бессрочные SSL-сертификаты Let’s Encrypt, которые генерируют и обновляют сами.
Клиент компании Евробайт самостоятельно генерирует бесплатный SSL-сертификат и перед окончанием срока его действия перевыпускает новый.
Генерация сертификата let’s encrypt
Эта процедура выполняется каждый раз при генерации нового SSL-сертификата, в том числе и для обновления действующего. Обновление заключается в выпуске нового сертификата и замены им устаревающего.
Загрузка ssl на сервер
Файлы .CA и .CRT необходимо отправить на сервер. Часто Linux-серверы администрируют через терминал и GUI может отсутствовать. В этом случае можно отправить файлы на машину с другой ОС, а затем их перенести. Ниже мы расскажем, как это можно осуществить.
Важно: пара (закрытый и открытый ключи) должна быть сгенерирована там, куда устанавливаются сами сертификаты. Однако если они были созданы на другом компьютере, на ваш сервер следует отправить закрытый ключ (файл .key), в соответствии с описанными ниже действиями по копированию.
Загрузка через операционную систему windows
Запускаем. Откроется окно, куда необходимо ввести параметры подключения по протоколу 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
Запуск утилиты putty.exe
Это операция проводится каждый раз при генерации первого и последующих бесплатных SSL-сертификатов Let’s Encrypt.
Запускаем программу putty.exe, открывается следующее окно:
Конфигурация nginx для ssl
Обратите внимание: на Ubuntu/Debian-дистрибутивах параметры веб-ресурсов Nginx обычно размещаются в директории /etc/nginx/sites-enabled/. В дистрибутиве CentOS стандартной директорией считается /etc/nginx/conf.d/.
Важно для дистрибутива 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
Перенос из unix-систем
В данном случае самым простым вариантом будет воспользоваться встроенной опцией терминала – SCP:
1. Файлы .CA и .CRT скачиваются из панели Serverspace на ваш компьютер.
2. Открываем терминал и переходим в место скачивания сертификатов, например:
cd ~/MyDownloadedFiles
Детальнее:
Подготовка к генерации сертификата
Перед генерацией и первой установкой сертификата Let’s Encrypt необходимо выполнить следующие действия:
Резервные копии могут понадобиться для восстановления сайта, если что-то пойдет не так. Не забывайте о резервном копировании перед любым вмешательством в файлы и базы данных вашего сайта.
Бесплатная утилита putty.exe понадобится для подключения по SSH в свой аккаунт на виртуальном хостинге. Скачиваем ее с этой страницы в разделе «Alternative binary files» (32-битную или 64-битную версию на выбор).
Подготовка к установке
В контексте данной инструкции полагается, что установка будет проходить на «чистом» сервере. Для корректной работы GitLab потребуются:
- CentOS 6/7;
- Postfix;
- Open SSH;
- Ruby;
- Go;
- Nodejs;
- База данных (PostgreSQL или MySQL);
- Redis;
- Nginx.
Проверяем настройки
Подборки SSL-сертификатов: DV сертификат для домена, EV сертификат “зеленая строка”, WC сертификат для поддоменов, SAN мультидоменный сертификат.
Создание директории и загрузка скрипта
Эти процедуры выполняются на виртуальном хостинге Евробайт однократно перед генерацией самого первого SSL-сертификата.
Запускаем putty.exe и подключаемся по SSH в свой аккаунт на хостинге Евробайт. Далее последовательно копируем каждую команду, вставляем ее щелчком правой кнопки мыши на жирном курсоре в окне программы putty.exe и нажимаем клавишу Enter.
1. Создаем директорию private (копируем, вставляем и выполняем следующую команду):mkdir ~/private
2. Переходим в директорию private:cd ~/private/
Установка
Существует 3 способа установки GitLab:
- Установка пакета;
- Установка из репозитория;
- Сборка и установка из исходников.
Рекомендуемым разработчиками вариантом является установка GitLab из репозитория. Для того чтобы установить GitLab из репозитория необходимо выполнить следующие действия:
Установим необходимые зависимости:
sudo yum install -y curl policycoreutils-python openssh-server
Данная команда установит следующие пакеты:
cURL, OpenSSH-Server и PolicyCoreUtils-Python
После установки данных пакетов необходимо запустить и включить в автозагрузку OpenSSH-Server. Для этого поочередно вводим следующие команды:
Включаем OpenSSH-Server в автозагрузку:
sudo systemctl enable sshd
Запускаем OpenSSH-Server:
sudo systemctl start sshd
Далее установим Postfix для отправки уведомлений на электронную почту. Для этого необходимо выполнить следующие команды:
Устанавливаем Postfix:
sudo yum install postfix
Добавляем Postfix в автозагрузку:
sudo systemctl enable postfix
Запускаем Postfix:
sudo systemctl start postfix
В процессе установки Postfix может открыть экран конфигурации. Вам необходимо выбрать «Internet-site» и нажать Enter. Для «mail name» необходимо указать внешний DNS вашего сервера, после чего нажать Enter. Если в процессе установки будут появляться дополнительные экраны, просто продолжайте нажимать Enter, чтобы установить значения по умолчанию.
Установка и обновление ssl-сертификата
Чтобы сертификат применился для нашего сайта, переходим в ISPmanager на вкладку «WWW домены», выделяем домен и нажимаем кнопку «Изменить». В открывшемся окне «Параметры WWW домена» ставим галочку в чек-боксе SSL, появятся поля «SSL порт» и «SSL сертификат».
Чтобы обновить сертификат перед окончанием срока его действия, необходимо сгенерировать и создать новый SSL-сертификат под другим именем, например, используя нумерацию.
Когда новый сертификат будет готов, выбираем его в окне «Параметры WWW домена» и нажимаем кнопку «OK». Обновить SSL-сертификат можно не ранее, чем за 30 дней до окончания срока действия предыдущего.
