Создать ssl сертификат centos
Ключевые принципы Let’s Encrypt:
2. Как он работает.
На первом этапе агент уведомляет Центр Сертификации о правах администратора сервера на доменное имя. На втором этапе, после подтверждения прав на домен, агент может запрашивать, обновлять и отзывать сертификаты.
2.1. Проверка домена.
Let’s Encrypt идентифицирует web-сервер с запущенным агентом по открытому ключу. Открытый и закрытый ключи генерируются агентом перед первым подключением к Центру сертификации Let’s Encrypt. После подключения агента к Центру Сертификации, создаётся аккаунт администратора сервера. В созданный аккаунт добавляются доменные имена, которыми владеет администратор, аналогично тому, как это происходит в платных Центрах Сертификации.
Одновременно с тестированием прав администратора на домен, Let’s Encrypt проверяет права агента на открытый и закрытый ключи. Let’s Encrypt отправляет агенту одноразовый пароль, который агент должен подписать закрытым ключом и отослать обратно.
Далее, Центр Сертификации проверяет, всё ли было сделано верно: корректную цифровую подпись на одноразовом пароле, возможность скачать созданный файл по URI, а также его содержимое.
2.2. Выпуск и отзыв сертификатов.
3. Основные преимущества.
4. О его недостатках.
В конце нужно отметить, что несмотря на все преимущества данного типа сертификата, существуют недостатки, которые нужно учитывать при выборе SSL:
- WildCard сертификат для защиты поддоменов определённого домена;
- Сертификаты OV SSL( Organization Validation), предполагающие проверку не только домена, но и компании;
- Сертификаты EV SSL (Extended Validation), сертификат с максимальной степенью защиты и зелёной адресной строкой браузера;
- Multi-Domain сертификат типа UCC.
5. Подготовка и установка утилиты certbot.
5.1. Установка snapd.
Установим EPEL репозиторий:
Установим snapd:
Пропишем автозапуск snapd при старте операционной системы:
Ответ:
Проверим начало работы snapd:
Ответ:
Чтобы включить поддержку snap, требуется создать символическую связь между /var/lib/snap/snap и /snap :
После этого либо выйдите из системы и снова войдите в нее, либо перезагрузите систему, чтобы убедиться, что пути snap связались правильно.
Можно просто создать внутри каталога файл и зайти посмотреть его с обоих путей.
5.2. Убедимся в актуальности snapd.
Выполните следующие инструкции в командной строке.
Ответ:
Убедимся, что у вас установлена последняя версия snapd:
Ответ:
5.3. Удалите certbot-auto и его пакеты.
Для удаления certbot-auto, требуется выполнить следующие действия:
Если вы добавили в cron или systemd таймер автоматического запуска certbot-auto для перевыпуска сертификатов, вам следует удалить все эти настройки.
Если вы это делали по ранее написанным инструкциям, вы можете удалить все задачи в файле /etc/crontab .
Возможно, что там будет нечто похожее на это:
Удалите скрипт certbot-auto, обычно он располагается вот здесь /usr/local/bin :
Вывод действий в консоли:
5.4. Установка утилиты certbot.
Если вы проделали все действия без ошибок, описанные выше по тексту, то смело можете приступать к дальнейшей установке certbot с помощью snapd:
Ответ:
5.4. Подготовка утилиты certbot.
Выполните следующую команду в командной строке, чтобы создать ссылку на утилиту certbot:
6. Получение бесплатного ssl-сертификата.
Наша следующая задача — получить бесплатные сертификаты.
Для этого временно остановим nginx, если он вдруг оказался запущен и подтвердим владение доменами с помощью temporary webserver, который certbot поднимет сам на время верификации доменов.
После того, как получили сертификаты, можно проверить конфиг nginx и запустить его. Ошибок быть не должно. Если они есть, то разбирайтесь с ними, возможно где-то ошиблись и допустили простые досадные опечатки.
Настройка nginx на этом завершена. Он должен корректно запуститься, подхватить сертификаты, указанные в файлах конфигурации nginx, и начать работать в обычном режиме.
7. Список установленных сертификатов.
Для просмотра всего что генерировал вам Let’s Encrypt введите команду:
Ответ: длинный список ваших сертификатов.
8. Автоматическое обновление ssl-сертификата.
Теперь сделаем так, чтобы сертификаты автоматически обновлялись перед истечением срока действия:
Настроим автоматический выпуск новых ssl сертификатов, взамен просроченных путем помещения команды certbot renew --dry-run куда-нибудь по смыслу в эти модули:
TLS (или Transport Layer Security, протокол безопасности транспортного уровня) и предшествующий ему SSL (Secure Sockets Layer) – это сетевые протоколы, которые шифруют и тем самым защищают трафик. Благодаря этой технологии процесс обмена данными между клиентом и сервером надежно защищен от перехвата посторонним абонентом. Кроме того, система сертификации помогает пользователям проверить подлинность сайта.
В данном руководстве речь пойдет о создании самоподписанного SSL-сертификата для веб-сервера Apache на виртуальном выделенном сервере CentOS 7. Самостоятельно подписанный сертификат не может подтвердить подлинность сайта, поскольку он не заверен центром сертификации (ЦС), которому может доверять браузер; но он будет шифровать взаимодействие между сервером и посетителями сайта, и тем самым повысит безопасность соединения.
Требования
Для выполнения данного руководства нужен предварительно настроенный сервер CentOS 7 и не-рутовая учетная запись пользователя с расширенными привилегиями sudo. Подробнее об этом можно прочесть в руководстве «Начальная настройка сервера CentOS 7».
Кроме того, нужно предварительно установить Apache; для установки веб-сервера можно использовать стандартный менеджер пакетов yum:
Затем нужно запустить Apache в качестве сервиса CentOS, чтобы автоматизировать запуск Apache после перезагрузки:
1: Установка mod_ssl
Чтобы создать самоподписанный сертификат, для начала нужно установить mod_ssl, модуль Apache для поддержки шифрования SSL. Для этого используйте команду yum:
sudo yum install mod_ssl
После установки модуль включится автоматически, после чего Apache сможет использовать сертификаты SSL. Осталось только перезапустить Apache, чтобы mod_ssl был готов к использованию.
2: Создание SSL-сертификата
Теперь веб-сервер подготовлен к шифрованию данных. Приступайте к созданию нового SSL-сертификата. Сертификат будет содержать некоторую базовую информацию о сайте; также к нему прилагается key-файл, благодаря которому сервер может обрабатывать зашифрованные данные.
Сначала нужно создать новый каталог, в котором будет храниться ключ сервера (key-файл) и сам сертификат:
При помощи команды openssl создайте ключ и сертификат SSL:
После ввода запроса будет открыта командная строка, в которой можно ввести информацию о сайте. Но сперва рассмотрим подробнее вышеприведенную команду:
Теперь заполните форму соответствующими данными. Самым важным полем в форме является Common Name, в котором нужно указать доменное имя сайта или внешний IP-адрес сервера. Форма имеет такой вид:
3: Установка SSL-сертификата
Итак, все необходимые компоненты готовы. Теперь нужно настроить виртуальный хост для отображения нового сертификата.
Откройте конфигурационный файл Apache для SSL в текстовом редакторе с привилегиями root:
Найдите раздел, который начинается с <VirtualHost _default_:443>. В него нужно внести несколько изменений, чтобы сертификат должным образом отображался на сайте.
Сначала раскомментируйте строку DocumentRoot и отредактируйте адрес в кавычках, указав свой каталог document root. По умолчанию это /var/www/html; если вы используете другой root-каталог веб-сервера, укажите в этой строке правильный адрес.
Внеся все изменения, сохраните и закройте файл.
4: Активация сертификата SSL
На данный момент SSL-сертификат и веб-сервер готовы. Чтобы применить все изменения и запустить шифрование SSL, перезапустите сервер Apache, это обновит его конфигурации:
sudo apachectl restart
Чтобы увидеть новый сертификат в действии, посетите в браузере доменное имя или IP в таком формате:
Чтобы продолжить, нужно добавить исключение в проверку подлинности браузера.
Заключение
SSL-сертификат – это способ шифрования информации сайта с целью создать более защищенное соединение. Кроме того, такой сертификат может предоставить посетителям сайта идентификационную информацию виртуального сервера. SSL-сертификат можно получить в центре сертификации (ЦС); тем не менее, существуют и самостоятельно подписанные сертификаты, которые не нуждаются в подтверждении сторонними лицами.
1: Установка mod_ssl
Прежде чем приступить к созданию самоподписанного сертификата, нужно убедиться, что на сервере установлены Apache и модуль mod_ssl. При необходимости их можно установить с помощью одной команды:
2: Создание нового каталога
Далее нужно создать новый каталог для хранения ключа и сертификата:
3: Создание самоподписанного сертификата
Создавая сертификат, необходимо указать срок его действия; для этого измените значение 365 нужным количеством дней. Без изменений следующая строка создаст сертификат со сроком действия в 365 дней.
Итак, данная команда создает SSL-сертификат и закрытый ключ, который защищает его, а затем размещает эти файлы в новом каталоге.
Кроме того, эта команда выведет в терминал спискок полей, которые должны быть заполнены.
Наиболее важным из них является поле «Common Name». В нем нужно указать официальное доменное имя (или IP-адрес сайта, если такого имени еще нет).
4: Настройка сертификата
Теперь все необходимые компоненты сертификата готовы. Следующее, что нужно сделать, — это настроить виртуальные хосты для отображения нового сертификата.
Откройте файл ssl.conf:
Найдите раздел, который начинается с <VirtualHost _default_:443> и отредактируйте его, как описано ниже.
Найдите следующие три строки и убедитесь, что они имеют правильные расширения:
Готово! Теперь виртуальный хост Apache настроен должным образом. Сохраните все внесенные изменения и закройте файл.
Так же необходимо добавить:
NameVirtualHost *:443
в виртуалхост домена,
данные:
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
так же можно добавить в виртуалхост домена
5: Перезапуск Apache
На данном этапе сертификат полностью готов к работе. Осталось только перезапустить Apache, чтобы активировать внесенные изменения.
Сегодняшняя моя статья посвящена созданию и размещению SSL-сертификата на веб-сервере Apache под управлением операционной системы CentOS. Конкретно в своем примере буду использовать CentOS 7.
И так, что же такое эти все SSL?
Для справки: TLS (или Transport Layer Security, протокол безопасности транспортного уровня) и предшествующий ему SSL (Secure Sockets Layer) – это сетевые протоколы, которые шифруют и тем самым защищают трафик. Благодаря этой технологии процесс обмена данными между клиентом и сервером надежно защищен от перехвата посторонним абонентом. Кроме того, система сертификации помогает пользователям проверить подлинность сайта.
Как я уже говорил, в этой статье я рассмотрю вариант создания самоподписанного SSL-сертификата для веб-сервера Apache на виртуальном выделенном сервере CentOS 7. Самостоятельно подписанный сертификат не может подтвердить подлинность сайта, поскольку он не заверен центром сертификации (CA), которому может доверять браузер; тем не менее он будет шифровать взаимодействие между сервером и посетителями сайта, и тем самым повысит безопасность соединения, что очень важно.
На все про все у вас уйдет на эту процедуру максимум 20 минут, даже если вы новичок и никогда подобного не делали.
1. Установка mod_ssl
Чтобы создать самоподписаный сертификат, для начала нужно установить mod_ssl, модуль Apache для поддержки шифрования SSL. Для этого исполняем команду:
sudo yum install mod_ssl
После установки модуль включится автоматически, после чего Apache сможет использовать сертификаты SSL. Осталось только перезапустить Apache, чтобы mod_ssl был готов к использованию.
2. Создание SSL-сертификата
Даю вам справочную информацию по параметрам генерации ключа:
После этой строки с запросом на генерацию сертификата откроется командная строка, в которой можно ввести информацию о сайте.
Самым важным полем в форме является Common Name, в котором нужно указать доменное имя сайта или внешний IP-адрес сервера. Форма имеет такой вид:
3. Установка SSL-сертификата
Найдите раздел, который начинается с . В него нужно внести несколько изменений, чтобы сертификат должным образом отображался на сайте.
Сначала раскомментируйте строку DocumentRoot и отредактируйте адрес в кавычках, указав свой каталог document root. По умолчанию это /var/www/html;
Внеся все изменения, сохраните и закройте файл.
4. Активация сертификата SSL
На данный момент SSL-сертификат и веб-сервер готовы. Чтобы применить все изменения и запустить шифрование SSL, перезапустите сервер Apache, это обновит его конфигурации:
sudo apachectl restart
Скорее всего, браузер выдаст предупреждение вроде «site’s security certificate is not trusted». Это значит, что браузер не может доверять сертификату, который не был заверен авторитетным центром сертификации. Это вполне ожидаемая реакция.
Чтобы продолжить, нужно добавить исключение в проверку подлинности браузера.
Читайте также: