Андрей Смирнов
Время чтения: ~18 мин.
Просмотров: 9

Установка SSL сертификата Let’s Encrypt на CentOS 7

Автор: · Опубликовано 22.07.2019 · Обновлено 05.08.2019

Введение

Вопросам безопасного посещения веб-сайтов сегодня уделяется большое внимание. Особенно это актуально при осуществлении онлайн платежей и вводе персональных данных на интернет-страницах. Защита информации при посещении сайта между компьютером пользователя и веб-сервером осуществляется при помощи SSL сертификатов. SSL сертификат — это уникальная электронно-цифровая подпись интернет сайта. SSL (Secure Sockets Layer) — это криптографический протокол, обеспечивающий шифрование трафика в интернет канале. Сайт не защищенный SSL сертификатом использует HTTP (HyperText Transfer Protocol) протокол, использующий по умолчанию 80 порт. Сайт с установленным сертификатом — HTTPS (HyperText Transfer Protocol Secure). HTTPS — это расширение протокола HTTP для обеспечения поддержки шифрования интернет соединения. Информация передается поверх криптографический протоколов. По умолчании использует 443 порт. HTTPS не является отдельным протоколом. Это все тот же HTTP, только использующий шифрование, тем самым обеспечивающий защиту от атак, основанных на перехвате трафика. Цены на SSL сертификаты, в среднем, начинаются от 1000 рублей в год. Для тех кто не готов платить такую сумму есть возможность получить бесплатный сертификат от Let’s Encrypt. Let’s Encrypt — центр сертификации, выдающий бесплатные SSL сертификаты. Осуществляет свою деятельность с 2015 года.  Сегодня мы как раз рассмотрим процесс получения и установки сертификата от Let’s Encrypt на сайты, работающие на веб-серверах Apache и NGINX под управлением операционной системы CentOS 7.

Подготовка к получению сертификата

Получать и устанавливать сертификат мы будем в автоматическом режиме с использованием Certbot. Certbot — это программное обеспечение с открытым исходным кодом для автоматического получения, установки и перевыпуска SSL сертификатов от Let’s Encrypt. Для установки Certbot на CentOS 7 сначала необходимо подключить репозиторий EPEL (Extra Packages for Enterprise Linux).

yum install epel-release

После подключения репозитория можно приступать к установке Certbot и получению сертификата. Для веб-серверов Apache и NGINX этот процесс будет незначительно отличаться.

Установка на Apache

Устанавливаем пакет Certbot для работы с Apache:

yum install certbot-apache

До установки сертификата сайт выглядит вот так:

Незащищенное HTTP соединение

Выпуск и установка сертификата осуществляется одной командой. Certbot автоматически изменит конфиг виртуального хоста и настроит его на работу с сертификатом. Выполняем:

certbot —apache -d домен.ru -d www.домен.ru

По запросу системы нужно будет указать адрес электронной почты администратора. Так же система спросит необходимо ли делать редирект с HTTP на HTTPS или нет. Отвечаем как вам необходимо.

Настройка редиректа

И дожидаемся окончания установки.

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

После установки система сообщит пути к выпущенным сертификатам.

Теперь необходимо перезапустить Apache:

systemctl restart httpd

Переходим на сайт и проверяем установился ли наш сертификат.

Защищенное HTTPS соединение

Все в порядке, сертификат установлен, мы подключились к сайту через защищенное HTTPS соединение. Нажав на замок вверху экрана можно можно посмотреть сведения о сертификате.

Сведения о сертификате

Сертификаты от Let’s Encrypt действительны в течении трех месяцев. Перед окончанием срока действия сертификата Certbot автоматически перевыпустит его.

Установка на NGINX

Устанавливаем пакет Certbot для работы с NGINX:

yum install certbot-nginx

И получаем сертификат:

certbot —nginx -d домен.ru -d www.домен.ru

Отвечаем на вопросы так же как и в случае с Apache.

После установки перезапускаем NGINX:

systemctl restart nginx

Переходим на сайт и проверяем наличие сертификата.

Заключение

В настоящей статье мы рассмотрели процесс установки SSL сертификата на сайты работающие на веб-серверах Apache и NGINX. Как видите все очень просто, весь процесс занимает не более 5 минут. Если остались вопросы — пишите в комментариях.

Перед установкой Linux CentOS нужно произвести резервное копирование важной информации. При чистой установке ОС на компьютер вся информация с жесткого диска или SSD удаляется.

Позаботьтесь о важных данных

Файлы, которые ценны для вас, необходимо переместить в дополнительное хранилище, в качестве которого вы можете использовать:

  • Файловое хранилище (NAS).
  • USB-накопители (флешки и жесткие диски или SSD).
  • Память вашего телефона или планшета.
  • Диски DVD+/-R (для одноразовой записи) или DVD+/-RW (с поддержкой перезаписи).

Перед началом установки новой ОС проверьте, открываются ли файлы, сохраненные вами на дополнительных носителях.

С какой версией совместим ваш компьютер

Системные требования:

  • CentOS 7 и 8: 64-битный центральный процессор. 32-битные процессоры поддерживаются версией CentOS 6.10.
  • CentOS 6.10 совместима с 32-битными ЦП.
  • Минимум: 1 ГБ оперативной памяти и 10 ГБ свободного места на HDD или SSD.
  • Оптимальный объем — ОЗУ: 1 ГБ на каждое ядро процессора и 20 ГБ на HDD или SSD.

Важные подробности

  • CentOS поддерживает процессоры Intel, AMD и VIA.
  • Новая версия 8.0 (1905) стала доступна 24 сентября 2019 года.
  • Во время установки для загрузки дополнительных компонентов нужно соединение с интернетом.
  • Пакеты установочных файлов программного обеспечения — RPM (Red Hat Package Manager).
  • CentOS базируется на RHEL (Red Hat Enterprise Linux).

Основные отличия CentOS от RHEL

Системы почти одинаковы, но есть и различия. Выделю основные:

  • В Red Hat Enterprise Linux предусмотрена плата за поддержку. Цена Red Hat Enterprise Linux Desktop с техподдержкой на 1 год: 3 906 рублей. CentOS бесплатна, но и коммерческая поддержка от RedHat не предусмотрена.
  • Большинство обновлений сначала получают пользователи RedHat и только потом — CentOS.

ustanovka-centos-8.png

Как скачать CentOS

Зайдите на главную веб-страницу проекта.

ustanovka-centos-1.png

Нажмите «CentOS DVD ISO».

ustanovka-centos-2.png

Если загрузка для вашего интернет-соединения невозможна, воспользуйтесь торрентом, выбрав одно из зеркал в предлагаемом списке.

ustanovka-centos-3.png

Как создать загрузочную флешку CentOS

Версии утилиты UNetbootin предлагаются для основных операционных систем:

  • Windows
  • Linux
  • macOS

ustanovka-centos-4.png

Для загрузки щелкните мышью по версии для вашей ОС. Программа CentOS совместима с показанными иллюстрацией дистрибутивами Linux.

ustanovka-centos-5.png

Запустите исполняемый файл и установите UNetbootin. Вставьте чистую флешку в USB-порт вашего ПК. Перед этим перенесите все важные файлы с нее на другие накопители, поскольку вся информация на данном носителе будет удалена. Откройте программу.

ustanovka-centos-6.png

Из списка ввеху выберите дистрибутив: CentOS. Из списка версий выберите самую свежую. Щелкните мышью по кнопке «…». Выберите файл ISO-образа системы на жестком диске.

ustanovka-centos-7.png

В главном окне UNetbootin нажмите кнопку «ОК» и дождитесь завершения создания загрузочного USB-накопителя.

После того, как загрузочный накопитель создан:

  • Закройте утилиту и извлеките флешку из USB-разъема.
  • Выключите компьютер.
  • Снова вставьте USB-накопитель в разъем.
  • Включите ПК.
  • Зайдите в UEFI или BIOS. На экране будет показано, какая клавиша или сочетание клавиш применяется для этого в вашей модели. Чаще всего: «Delete» («Del»), «F2» или «F10».

ustanovka-centos-27.jpg

Настройки BIOS

Интерфейсы UEFI или BIOS различаются между собой. Вам необходим раздел настроек загрузки («Boot»). В списке накопителей надо первой установить вашу загрузочную флешку.

ustanovka-centos-28.jpg

Нажмите «F10» для выхода из BIOS с сохранением сделанных в нем изменений.

Для подтверждения сделанных вами настроек выберите кнопку «ОК», а на клавиатуре нажмите «Enter».

В BIOS вашего ПК возможна другая последовательность действий.

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

Дождитесь загрузки и оставьте вариант «Install CentOS Linux 8.0.1905», где «8.0.1905» — номер версии.

Подготовка к установке займет время.

Язык мастера установки

Определите язык интерфейса установщика. Язык ОС вам предстоит выбрать дополнительно перед запуском CentOS.

В верхнем правом углу вы видите текущую раскладку клавиатуры. Одинарным щелчком по раскладке вы можете переключиться на другую.

Время

На экране «Обзор установки» некоторые разделы помечены оранжевым треугольником с восклицательным знаком. Это значит — вам нужно настроить их перед началом установки.

Создайте несколько разделов на жестком диске. Установщиком рекомендуется вариант «Автоматически», что означает — на HDD SSD будет только один раздел. Слева вверху находится кнопка «Готово». Нажмите ее.

Нажмите «Time & Date». В открывшемся окне выберите часовой пояс.

Интернет

Соединение с интернетом может быть выключено.

Включите его в разделе «Сеть и имя хоста», переместив ползунок во включенное состояние.

Установка системы

Нажмите экранную кнопку «Начать установку». Вы найдете ее внизу справа.

Откроется окно конфигурации и стартует установка ОС, во время которой будут автоматически загружены необходимые пакеты, установлены и настроены компоненты. Она может продлится более получаса.

В нижней части экрана конфигурации — подсказка.

Создайте учетную запись администратора

Войдите в раздел «Root Password». Введите пароль, который будет использоваться администратором компьютера. Повторите ввод во втором поле. Нажмите кнопку «Готово».

Мастер установки CentOS может решить, что пароль ненадежен. В нижней части окна на оранжевом фоне будет написано, почему установщик не рекомендует использовать этот пароль. В таком случае, если вы уверены в своем решении, нужно нажать на кнопку «Готово» два раза.

Создайте учетную запись пользователя

Войдите в секцию «Создание пользователя». Укажите полное имя, имя пользователя и пароль учетной записи. Пароль нужно ввести повторно в дополнительное поле.

Что нужно знать о пользовательской учетной записи:

  • Максимальная длина имени пользователя: 32 знака без пробела.
  • У вас есть возможность сделать этого пользователя администратором.
  • Выберите, нужно ли вводить пароль при входе в ОС.

В зависимости от требований мастера установки, для подтверждения изменений нажмите на кнопку «Готово». Щелкать по ней дважды необходимо, если установщик не считает пароль достаточно защитой учетной записи. При этом, вы все равно сможете использовать такой пароль, если посчитаете, что его достаточно.

Внизу появится сообщение о том, ОС успешно установлена. Щелкните по кнопке «Завершить настройку».

Что необходимо сделать перед первым стартом ОС

Нужные для работы системы настройки будут сделаны автоматически. Перед тем, как начать пользоваться CentOS вам предстоит сделать еще несколько вещей:

  • Ознакомиться с текстом лицензионного соглашения и принять его условия.
  • Если вы оставили опцию ввода пароля при запуске системы, нужно будет ввести пользовательский пароль.
  • Определить язык интерфейса операционной системы и раскладку клавиатуры.
  • Позволить или не позволить программам определять местоположение.
  • Войти в свои аккаунты: Microsoft, Google, Facebook и Nextcloud.

Если вы не планируете пользоваться сервисами с компьютера, на который устанавливаете CentOS, не вводите данные учетных записей. При необходимости вы сможете сделать это в удобное для вас время.

Работает ли Total Commander в CentOS

Пользователи предпочитают не ставить Linux поскольку с первых же минут он выглядит непривычно. Вы не можете поставить Total Commander, а двухпанельный файловый менеджер вам необходим.

Используйте Krusader — двухпанельный файловый менеджер для Linux:

  • Перейдите на страницу загрузки программы.
  • Прокрутите ее до появления активных ссылок на файлы с расширением «rpm».
  • Скачайте Binary Package.
  • Установите приложение. Ранее я рассматривал установку софта в Ubuntu. Обратите внимание на четвертый способ. В CentOS отличия будут незначительны.
  • В числе программ появится Krusader и вы сможете не менять свои предпочтения после перехода на Linux.

Вы предпочитаете CentOS или вам больше по вкусу Ubuntu?

—> —>beaf90b5123535a664e8d6480efdfb7b.png Сразу скажу я не специалист по Linux, начал изучать Linux только потому что аренда серверов под Windows в разы дороже, то есть как ни крути Linux это просто выгодно, а еще как оказалось в некоторых моментах и попроще чем Windows. Статья написана как полное руководство по одному из возможных вариантов настройки веб сервера на CentOS от начала и до конца, со всеми подводными камнями, на устранение которых человеку не знакомому с Linux, может понадобиться много времени. Сервер предполагается на Apache+PHP+Postgres, кому нужна MySQL без труда смогут найти руководство в интернете, Postgres все таки менее популярен, а поэтому чуть посложнее. Кроме возможной пользы для других, планирую и сам пользоваться своим руководством чтобы вспомнить моменты которые напрягли при настройки CentOS и быстро разворачивать сервера на CentOS по мере необходимости, поэтому любые и советы и дополнения приветствуются! Почему CentOS ?, тут тоже все просто так как я не работал ни с одной версией Linux, выбирал лучшую из доступных под мои требования, а требования простые раз это сервер, то нужна максимальная стабильность ну и бесплатность, а CentOS это операционная система корпоративного класса созданная на основе платной Red Hat Linux и в отличии от Fedora без всяких экспериментов только проверенные и надежные технологии от Red Hat. Несмотря на заявленную стабильность, советую начинать изучение CentOS на локальном компе в виртуальной машине, и в качестве виртуальной машины советую Virtual Box, потому что в любимой мной VMware Workstation, CentOS умудрилась вызвать зависание всей VMware, которое я за много лет пользования VMware вообще никогда не видел и еще CentOS почему то не ставиться на VMware Workstation 9 в минимальной конфигурации, а именно в этой конфигурации (то есть просто доступ к командной строке, без всяких графических оболочек) в идеале использовать CentOS на удаленном сервере, так же с VMware возникли проблемы с установкой 64-битной версии CentOS 6.4. Конечно я уверен что все эти проблемы с VMware решаемы, но как то не хотелось разбираться еще и в этом, когда изучение самой ОС намного интереснее, просто имейте ввиду при прочих равных лучше начать изучение в Virtual Box.Итак начнем: Для начала советую ставить CentOS с графическим интерефейсом, дистрибутив легко отличить по самому большому размеру, основную работу все равно придется делать в окне терминала, но привычный вид рабочего стола поможет легче пережить шок от того что можно работать и без графики. После установки CentOS и создания пользователя например Test, входить в систему нужно под пользователем root, а пароль вводить от пользователя Test, root это администратор системы и только под ним можно сделать все то что нужно для настройки нашего сервака, странная логика но это нужно знать. Так же можно зайти под Test и ввести # su root в итоге все будете делать под root, этот способ так же более безопасен спасибо Falcon_peregrinus за совет После того как логин прошел успешно, нужно открыть окно терминала в графической версии CentOS, либо просто начать писать команды в командную строку в минимальной версии CentOS. Для начала сделаем обновление системы. Просто напишем в терминале:# yum update и нажмем enter Знак # писать не нужно, я просто написал его чтобы было понятно что это команда для терминала CentOS. После yum update если у вас есть соединение с интернетом, пойдет обновление всей системы из официального репозитория CentOS. Чем мне сразу понравилась CentOS в сравнении с Windows это наличие такого репозитория, где собрано куча оттестированного софта для вашей системы. Конечно пользоваться им только из окна терминала не так удобно как могло бы быть, но в случае сервера, софта будет не много и этого более чем достаточно.Сеть Если у вас все таки какие то проблемы с интернетом на CentOS то опишу как настроить сетевой адаптер. Набираем в терминале команду# ifconfig Не ipconfig, а именно if В результате нам покажут все сетевые интерфейсы которые есть на CentOS. Чтобы был интернет в списке доступных интерфейсов кроме lo(то есть локальный), должен быть хотя бы один адаптер eth, например eth0. Если нет ни одного eth, вводим# ifconfig eth0 up После чего вводим опять ifconfig и проверяем, eth0 должен появиться. Если интернета все равно нет, то открываем настройки eth0# vi /etc/sysconfig/network-scripts/ifcfg-eth0 vi это текстовый редактор чтобы начать редактировать нужно нажать клавишу i внизу появится надпись INSERT, чтобы выйти из режима редактирования нажимаем ESC. После чего пишем :wq что значит сохранить и выйти(:q! чтобы выйти не сохраняясь). Как именно редактировать файл настроек сетевого адаптера eth0 это вам виднее, единственное скажу что нужно поставить ONBOOT=”yes”, чтобы сетевой адаптер загружался автоматически. Мне этот параметр помог наконец получить IP адрес от моего роутера по DHCP по другому почему то не получилось. Еще скажу что для настройки сети есть графическая прога вызвать которую можно командой system-config-network Но в ней нельзя настроить параметр ONBOOT=”yes”, да и вообще по моему в обычном файле как то удобнее. Да и в минимальной конфигурации CentOS эту прогу еще нужно поставить из репозитория.Apache Когда мы обновили систему, а значит не имеем проблем с интернетом в нашей ОС, можно переходить к настройке сервака. Сначала поставим веб сервер.# yum -y install httpd -y значит что установщик нажмет yes если такое потребуется, можно запустить и просто# yum install httpd Но тогда нажимать y придется самим. Добавим апачи в автозагрузку# chkconfig httpd on И запустим# service httpd start Если появиться ОК значит все прошло хорошо.PHP Теперь поставим php# yum install php Сделаем файл для проверки# echo ' phpinfo(); ' > /var/www/html/test.php Перегрузим Apache# service httpd restart Смотрим по адресу IP-адрес_сервера/test.php информацию о php, если она есть значит все хорошо.Postgres Теперь с установкой Postgres сделаем немного посложнее. В официальном репозитории CentOS, находиться старая версия Postgres 8.3, по опыту работы с postgres скажу что у меня с ней были проблемы, поэтому советую ставить более новую версию. Оригинальное руководство на английском тут Для начала выключаем SELinux# vi /etc/sysconfig/selinux И устанавливаем переменную SELinux=disabled SELinux это система контроля доступа в Linux, она помешала мне соединиться с Postgres, в оригинальном английском руководстве об этом ни слова. Уже после написания статьи настраивал CentOS на другом сервере и соеденения с Postgres прошли нормально и без выключения SELinux, поэтому просто имейте ввиду если Postgres не работает возможно дело в SELinux. Теперь скачаем данные о репозитории Postgres с официального сайта.# wget yum.pgrpms.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm Если ничего не качает установите прогу wget (yum install wget) Устанавливаем репозиторий чтобы можно было поставить Postgres через yum# rpm -ivh pgdg-centos92-9.2-6.noarch.rpm После чего ставим клиент сервер для Postgres# yum install postgresql92 postgresql92-server нажимая Y там где это нужно Инициализируем БД# service postgresql-9.2 initdb И стартуем# service postgresql-9.2 start добавим Postgres в автозагрузку# chkconfig postgresql-9.2 on Теперь нужно создать пользователя для Postgres# su postgres# psql -dpostgres должна появится надпись postgres=# вначале строки, значит мы залогинены под этим пользователем в БД. После чего создаем супер пользователя и пароль# CREATE role opensourcedbms LOGIN PASSWORD 'opensourcedbms' SUPERUSER; После чего выходим# q Теперь нужно сделать стандартные настройки Postgres# vi /var/lib/pgsql/9.2/data/postgresql.conf Расскоментируем строку #listen_addresses = ‘localhost’ и изменим ее на #listen_addresses = ‘*’ И настроим файл pg_hba.conf# vi /var/lib/pgsql/9.2/data/pg_hba.conf Я для проверки работы БД оставляю раскомментированными такие строки Host all all 0.0.0.0/0 trust Host all all ::1/128 trust То есть коннект принимается с любых адресов и без пароля, потом не забудьте это исправить. После настройки советую изменить trust на md5, пускать только локальные подключения к базе и в виде исключения прописать ваш IP адрес с которого можно подключатся к базе и удаленно, если IP динамический и нужно прямое подключение к базе то оставьте 0.0.0.0/0 После чего# service postgresql-9.2 restart И если у вас запущем фаервол нужно добавить в него такую запись# vi /etc/sysconfig/iptables -A INPUT -m state —state NEW -m tcp -p tcp —dport 5432 -j ACCEPT Хотя я для начала советую просто сделать# service iptables stop Чтобы выключить его совсем. После чего можно пробовать подключатся к базе данных из установленного не в CentOS, pgAdmin. Можно конечно поставить pgAdmin и в саму CentOS, но я думаю это лишнее, тем более для этого обязательно нужен графический интерфейс. В случае каких то проблем для начала перезапустите все сервисы или вообще весь сервер, возможно где то забыли это сделать и изменения еще не вступили в силу. Теперь осталось только связать Postgres c PHP# yum install php-pgsql после чего перезапускаем веб сервер и базу данных# service httpd restart# service postgresql-9.2 restart И в нашем файле test.php который мы создали ранее должна появиться информация о Postgres.FTP Теперь поставим FTP для доступа к файлам на нашем сервере.# yum install vsftpd# chkconfig vsftpd on# service vsftpd start Думаю эти три строчки понятны, я расскажу о том как создать пользователя для фтп и назначить ему папку не по умолчанию, именно назначение папки почему то неправильно описано в статьях что я читал по настройке vsftpd.# adduser ftpuser1# passwd ftpuser1 Создаем пользователя и пароль. Открываем файл со всеми пользователями CentOS# vi /etc/passwd Находим там ftpuser1 и меняем там папку на свое усмотрение После чего перезагружаем vsftpd и проверяем. Смена стандартной папки для ftp пользователя мне например пригодилась чтобы заливать файлы по ftp сразу в директорию вебсервера Конфигурация vsftpd находиться в /etc/vsftpd.conf, описывать не буду у каждого она индивидуальная но по умолчанию все работает. Можно только сразу выключить доступ анонимов по ftp anonymous_enable:noSFTP SFTP более безопасный аналог FTP, я о нем узнал недавно но во всех нужных мне прогах его поддержка уже давно есть Так что если вам не нужен именно FTP, советую сразу настроить передачу файлов на сервер по SFTP В моей системе даже ставить ничего не пришлось сделал просто# service sshd start# chkconfig sshd on Обратите внимание как примерно должна выглядеть запись о пользователе в /etc/passwd sftpuser:x:500:500::/var/www/html:/bin/bash в конце должна стоять запись /bin/bash это запись говорит о том какой шелл будет доступен для sftpuser Так же не забудьте разблокировать 22 порт в фаерволе если он заблокированГрафика Теперь хотелось бы сказать как поставить графический интерфейс на CentOS, если у вас такого нет. #yum groupinstall «X Window System» «Desktop» «Desktop Platform» «Fonts» И запуск # startx Чтобы выйти из графического интерфейса наберите # telinit 3 Обратите внимание команда с пробелом! По поводу доступа к графическому интерфейсу на удаленном сервере(на своей локальной виртуалке такой доступ не нужен) могу просто посоветовать использовать xrdp, по информации в интеренете этот доступ наиболее стабильный и быстрый, мне установили по требованию на мой хостинг и я не стал разбираться с установкой, потому что для настройки сервера вполне хватает обычной консоли которую можно получить в программе PuTTY. Я даже удивился как может быть удобна консоль советую просто попробовать, для сервака самое то, доступ к рабочему столу обычно тормозит и это раздражает, но даже если бы все было как на локальном компьютере я бы тоже использовал консоль. Графика очень полезна для начального изучения что и как, но когда быстро надо настроить сервак консоль просто лучше.Дополнительные мелкие полезности, планирую обновлять:# yum search file_name Поиск файла в репозитории CentOS# find /* -iname 'file_name' Поиск расположения файла на локальном компьютере# ls# ls –l Показывает содержание текущего каталога# system-config-firewall фаервол в графике можно удобно поставить галки на те сервисы которым разрешено выходить в интернет, иногда требуется установка из репозитория.Используемые источники:

  • https://itseason.ru/ssl-centos-apache-nginx/
  • https://poznyaev.ru/blog/linux/ustanovka-centos
  • https://habr.com/post/195614/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации