Step Four: Activate the Certificate
By now, you have created an SSL certificate and configured your web server to apply it to your site. To apply all of these changes and start using your SSL encryption, you can restart the Apache server to reload its configurations and modules.
First, check your configuration file for syntax errors by typing:
As long as the output ends with , you are safe to continue. If this is not part of your output, check the syntax of your files and try again:
Restart the Apache server to apply your changes by typing:
Next, make sure port 80 and 443 are open in your firewall. If you are not running a firewall, you can skip ahead.
If you have a firewalld firewall running, you can open these ports by typing:
If have an iptables firewall running, the commands you need to run are highly dependent on your current rule set. For a basic rule set, you can add HTTP and HTTPS access by typing:
In your web browser, try visiting your domain name or IP with to see your new certificate in action.
Your web browser will likely warn you that the site’s security certificate is not trusted. Since your certificate isn’t signed by a certificate authority that the browser trusts, the browser is unable to verify the identity of the server that you are trying to connect to. We created a self-signed certificate instead of a trusted CA-signed certificate, so this makes perfect sense.
Once you add an exception to the browser’s identity verification, you will be allowed to proceed to your newly secured site.
Шаг 2 — Проверка веб-сервера
Apache не запускается автоматически на CentOS после завершения установки. Вам нужно будет запустить процесс Apache вручную:
Убедитесь, что служба запущена с помощью следующей команды:
Если служба запущена, вы увидите значение (активна) в статусе:
Как видно из результатов, служба успешно запущена. Однако лучше всего протестировать ее запуск посредством запроса страницы из Apache.
Откройте страницу Apache по умолчанию, чтобы подтвердить работу программного обеспечения через ваш IP-адрес: Если вы не знаете IP-адрес вашего сервера, есть несколько способов узнать его с помощью командной строки.
Введите следующие данные в командной строке сервера:
Эта команда отобразит все сетевые адреса хоста, и вы получите несколько IP-адресов, разделенных пробелами. Вы можете попробовать каждый из них в браузере, чтобы убедиться в их работоспособности.
Также в качестве альтернативы вы можете использовать для запроса IP-адреса , который предоставит вам ваш публичный IPv4-адрес, видимый в другом месте в Интернете:
Когда вы узнаете IP-адрес вашего сервера, введите его в адресную строку браузера:
Вы увидите стандартную веб-страницу Apache в CentOS 7:
Эта страница показывает, что Apache работает корректно. Также на ней содержится информация о важных файлах Apache и расположении директорий. Теперь, когда служба установлена и запущена, вы можете использовать различные команды для управления службой.
Установка Memcached
Первым этапом мы установим и настроим сервис memcached. Вторым — модуль php-memcached.
Сервис memcached
Выполняем установку пакетов:
dnf install memcached libmemcached
Создаем или открываем на редактирование конфигурационный файл для запуска сервиса:
vi /etc/sysconfig/memcached
Приводим его к виду:
PORT=»11211″
USER=»memcached»
MAXCONN=»1024″
CACHESIZE=»512″
OPTIONS=»-l 127.0.0.1 -U 0″
* где PORT указываем на каком порту будет слушать сервис кэширования; USER — пользователь, под которым должен запускаться сервис; MAXCONN — максимальное число одновременных подключений; CACHESIZE — размер под кэш в мегабайтах; OPTIONS — параметры запуска (в данном примере наш сервис будет принимать запросы только с адреса локальной петли).
После разрешаем автозапуск и запускаем сервис кэширования:
systemctl enable memcached —now
Модуль для php
Переходим на страницу загрузки memcached сайта pecl.php.net и копируем ссылку на стабильную версию memcached:
Обратите внимание, что у каждой версии пакета есть свои требования к версии PHP. Внимательно изучаем, подойдет ли версия php-memcached для нашего сервера
Скачиваем архив, ссылку на который мы скопировали:
wget http://pecl.php.net/get/memcached-3.1.5.tgz
Устанавливаем пакеты, необходимые для сборки php-pecl-memcached:
dnf install php-devel zlib-devel make
dnf —enablerepo=PowerTools install libmemcached-devel
Распаковываем скачанный архив:
tar -xvzf memcached-*.tgz
Переходим в распакованный каталог:
cd memcached-*/
Запускаем компиляцию php-расширения:
phpize
Конфигурируем исходник:
./configure
Собираем расширение:
make
Копируем созданный модуль в каталог php-модулей:
cp modules/memcached.so /usr/lib64/php/modules/
Создаем конфигурационной файл для подключения расширения:
vi /etc/php.d/20-memcached.ini
extension=memcached.so
После установки модуля перезапускаем php-fpm:
systemctl restart php-fpm
… или вводим команду:
php -m | grep memcached
Мы должны получить:
memcached
Настройка apache в CentOS 7
Теперь приступим к установке apache. В CentOS 7 это делается очень просто:
# yum install -y httpd
Добавляем apache в автозагрузку:
# systemctl enable httpd
Запускаем apache в CentOS 7:
# systemctl start httpd
Проверяем, запустился ли сервер:
# netstat -tulnp | grep httpd tcp6 0 0 :::80 :::* LISTEN 21586/httpd
Все в порядке, повис на 80-м порту, как и положено. Уже сейчас можно зайти по адресу http://ip-address и увидеть картинку:
Теперь займемся настройкой apache. Я предпочитаю следующую структуру веб хостинга:
/web | раздел для размещения сайтов |
/web/site1.ru/www | директория для содержимого сайта |
/web/site1.ru/logs | директория для логов сайта |
Создаем подобную структуру:
# mkdir /web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs # chown -R apache. /web
Дальше редактируем файл конфигурации apache — httpd.conf по адресу /etc/httpd/conf. Первым делом проверим, раскомментированна ли строчка в самом конце:
IncludeOptional conf.d/*.conf
Если нет, раскомментируем и идем в каталог /etc/httpd/conf.d. Создаем там файл site1.ru.conf:
# mcedit /etc/httpd/conf.d/site1.ru.conf
<VirtualHost *:80> ServerName site1.ru ServerAlias www.site1.ru DocumentRoot /web/site1.ru/www <Directory /web/site1.ru/www> Options FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog /web/site1.ru/logs/error.log CustomLog /web/site1.ru/logs/access.log common </VirtualHost>
Перезапуск apache в centos
Теперь делаем restart apache:
# systemctl restart httpd
Если возникли какие-то ошибки — смотрим лог apache /var/log/httpd/error_log. Если все в порядке, то проверим, нормально ли настроен наш виртуальный хост. Для этого создадим в папке /web/site1.ru/www файл index.html следующего содержания:
# mcedit /web/site1.ru/www/index.html
<h1>Апач настроен!</h1>
# chown apache. /web/site1.ru/www/index.html
Дальше в винде правим файл hosts, чтобы обратиться к нашему виртуальному хосту. Добавляем туда строчку:
192.168.1.25 site1.ru
где 192.168.1.25 ip адрес нашего веб сервера.
Теперь в браузере набираем адрес http://site1.ru. Если видим картинку:
значит все правильно настроили. Если какие-то ошибки, то идем смотреть логи. Причем в данном случае не общий лог httpd, а лог ошибок конкретного виртуального хоста по адресу /web/site1.ru/logs/error.log.
Сразу же обращу ваше внимание на настройку ротации логов виртуальных хостов. Частенько бывает, что если сразу не настроишь, потом забываешь
Но если сайт с хорошей посещаемостью, то логи будут расти стремительно и могут занять очень много места. Лучше настроить ротацию логов веб сервера сразу же после создания. Сделать это не сложно.
Чтобы настроить ротацию логов виртуальных хостов, необходимо отредактировать файл /etc/logrotate.d/httpd. Он создается во время установки apache и включает в себя настройку ротации стандартного расположения логов. А так как мы перенесли логи каждого виртуального хоста в индивидуальную папку, необходимо добавить эти папки в этот файл:
# mcedit /etc/logrotate.d/httpd
/web/*/logs/*.log /var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript }
Мы добавили одну строку в самое начала файла. Теперь логи всех виртуальных хостов в папке /web будут ротироваться по общему правилу.
В принципе, простейший веб сервер уже готов и им можно пользоваться. Но вряд ли сейчас найдутся сайты со статическим содержимым, которым достаточно поддержки только html. Так что продолжим нашу настройку.
Если вам необходимо организовать работу сайта по протоколу https, то воспользуйтесь руководством по настройке ssl в apache.
Шаг 5. Настройка редиректа
Чтобы все запросы по http автоматически перенаправлялись на https, необходимо настроить перенаправление (redirect). Есть несколько способов это сделать.
В конфигурационном файле
Открываем файл с настройкой виртуальных доменов (как в шаге 3) и дописываем следующее:
<VirtualHost *:80>
ServerName site.ru
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
* в конкретном примере, мы перенаправили все запросы для сайта site.ru.
** обратите особое внимание, что если у Вас уже есть VirtualHost *:80 для настраиваемого сайта, необходимо его закомментировать или отредактировать
Установка модуля rewrite
Чтобы перенаправление работало в Apache, необходимо установить модуль rewrite.
а) в CentOS открываем конфигурационный файл и проверяем наличие строки:
vi /etc/httpd/conf.modules.d/00-base.conf
LoadModule rewrite_module modules/mod_rewrite.so
* если ее нет, добавляем; если она закомментирована, снимаем комментарий.
systemctl restart httpd
б) в Ubuntu:
a2enmod rewrite
systemctl restart apache2
Установка Apache на RHEL 8 / CentOS 8
Пакет веб-сервера Apache в RHEL 8 называется . Этот пакет и его инструменты распространяются через репозиторий Application Stream. Установите модуль httpd на RHEL 8 с помощью команды.
Это установит следующие пакеты httpd.
- httpd : Apache HTTPWeb Сервер.
- httpd-файловая система : содержит базовую структуру каталогов для HTTP-сервера Apache, включая правильные разрешения для каталогов.
- httpd-tools : содержит инструменты, которые можно использовать с HTTP-сервером Apache
- mod_http2 : модуль Apache httpd, который реализует протокол HTTP2 (h2 + h2c) поверх libnghttp2 для серверов httpd 2.4.
- mod_ssl : обеспечивает надежную криптографию для веб-сервера Apache по протоколам Secure Sockets Layer (SSL) и Transport Layer Security (TLS).
- и другие необходимые зависимости — апрель *
Службы по умолчанию, считывает конфигурацию из следующих мест.
- /etc/httpd/conf/httpd.conf — это основной файл конфигурации httpd.
- /etc/httpd/conf.d/ — это вспомогательный каталог для файлов конфигурации, которые включены в основной файл конфигурации. Вы можете разместить конфигурационные файлы, такие как VirtualHosts, в этом каталоге.
- /etc/httpd/conf.modules.d/ — содержит файлы конфигурации, которые загружают динамические модули, упакованные в RHEL. Файлы конфигурации в этом каталоге обрабатываются в первую очередь.
- / usr / lib64 / httpd / modules / — каталог с модулями httpd.
Установка MySQL в CentOS 7
Как я уже писал ранее, сейчас все большее распространение получает форк mysql — mariadb. Она имеет полную совместимость с mysql, так что можно смело пользоваться. Я предпочитаю использовать именно ее.
Устанавливаем mariadb на CentOS 7:
# yum install -y mariadb mariadb-server
Добавляем mariadb в автозапуск:
# systemctl enable mariadb.service
Запускаем mariadb:
# systemctl start mariadb
Проверяем, запустилась или нет:
# netstat -tulnp | grep mysqld tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 22276/mysqld
Обращаю внимание, что она даже в системе отображается как сервис mysqld. Теперь запускаем стандартный скрипт настройки безопасности:
# /usr/bin/mysql_secure_installation
Не буду приводить весь вывод работы этого скрипта, там все достаточно просто и понятно. Сначала задаем пароль для root (текущий пароль после установки пустой), потом удаляем анонимных пользователей, отключаем возможность подключаться root удаленно, удаляем тестового пользователя и базу.
Файл настроек mysql/mariadb лежит в /etc/my.cnf. Для обычной работы достаточно настроек по-умолчанию. Но если вы решите изменить их, не забудьте перезапустить службу баз данных.
Перезапуск mariadb/mysql в CentOS 7:
# systemctl restart mariadb
На этом все. Базовый функционал web сервера на CentOS 7 настроен.
Если вам нужен phpmyadmin воспользуйтесь моим подробным руководством по установке и настройке phpmyadmin на centos 7.
Буду рад замечаниям и комментариям по теме статьи. Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.
Онлайн курс Основы сетевых технологий
Теоретический курс с самыми базовыми знаниями по сетям. Курс подходит и начинающим, и людям с опытом. Практикующим системным администраторам курс поможет упорядочить знания и восполнить пробелы. А те, кто только входит в профессию, получат на курсе базовые знания и навыки, без воды и избыточной теории. После обучения вы сможете ответить на вопросы:
- На каком уровне модели OSI могут работать коммутаторы;
- Как лучше организовать работу сети организации с множеством отделов;
- Для чего и как использовать технологию VLAN;
- Для чего сервера стоит выносить в DMZ;
- Как организовать объединение филиалов и удаленный доступ сотрудников по vpn;
- и многое другое.
Уже знаете ответы на вопросы выше? Или сомневаетесь? Попробуйте пройти тест по основам сетевых технологий. Всего 53 вопроса, в один цикл теста входит 10 вопросов в случайном порядке. Поэтому тест можно проходить несколько раз без потери интереса. Бесплатно и без регистрации. Все подробности на странице .
Шаг 4 — Настройка автообновления SSL сертификата
Сертификат Let’s Encrypt действителен в течении 90 дней, но каждый веб-эксперт порекомендует вам обновлять его каждые 60 дней для избежания возникновения проблем с обновлением. Сделать это вам поможет сам certbot, с помощью команды renew. После выполнения команды он проверит время до истечения срока действия сертификата.
Для этого запустите данную команду:
certbot renew
Если установленный сертификат еще действителен, certbot проверит только дату истечения срока годности:
Processing /etc/letsencrypt/renewal/example.com.conf The following certs are not due for renewal yet: /etc/letsencrypt/live/example.com/fullchain.pem (skipped) No renewals were attempted.
Для автоматизации данного процесса, вы можете настроить cronjob. Во-первых, откройте crontab:
crontab -e
Эта задача может быть записана в расписание на каждую полночь понедельника.
0 0 * * 1 /usr/bin/certbot renew >> /var/log/sslrenew.log
Журнал выполнения задачи будет выведен в файл /var/log/sslrenew.log.
Ротация логов веб сервера apache
Последний штрих в настройке web сервера — ротация логов виртуальных хостов. Если этого не сделать, то через какое-то, обычно продолжительное, время возникает проблема в связи с огромным размером лог файла.
У нас уже будет файл конфигурации logrotate для httpd, который был создан во время установки — /etc/logrotate.d/httpd. Приведем его к следующему виду:
/var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript } /web/sites/pma.serveradmin.ru/log/*log { size=10M rotate 10 missingok notifempty compress sharedscripts postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript } /web/sites/z.serveradmin.ru/log/*log { size=10M rotate 10 missingok notifempty compress sharedscripts postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript }
Шаг 3 — Управление процессом Apache
Теперь, когда служба установлена и запущена, вы можете использовать различные команды systemctl для управления службой.
Чтобы остановить веб-сервер, введите:
Чтобы запустить остановленный веб-сервер, введите:
Чтобы остановить и снова запустить службу, введите:
Если вы просто вносите изменения в конфигурацию, во многих случаях Apache может перезагружаться без отключения соединений. Для этого нужно использовать следующую команду:
По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, отключите такое поведение с помощью следующей команды:
Чтобы перезагрузить службу для запуска во время загрузки, введите:
Apache должен будет запуститься автоматически при следующей загрузке сервера.
Конфигурация по умолчанию для Apache позволит вашему серверу размещать один веб-сайт. Если вы планируете разместить несколько доменов на сервере, вам нужно будет настроить виртуальные хосты на веб-сервере Apache.
Install an SSL certificate on CentOS
Using the method below, you can install an SSL certificate on CentOS 7 & 6.
- Download the primary and intermediate certificates that you’ve received from your SSL provider
- Copy your SSL files to your Apache server. Make sure the .key file that you created along the CSR generation is also present on your server
- Now, you need to locate and edit the httpd.conf or ssl.conf file in the Apache configuration. Uses the “cp” and “nano” commands:
- If one or more files are commented out, remove the # character from the starting line, and enter the absolute path according to your Apache versionApache versions older than the 2.4.8 release have the following directives and path:
- SSL Certificate file – The path of your certificate file
- SSLCertificate KeyFile – The path of your key file
- SSLCertificate ChainFile – The intermediate bundle path.
Apache version 2.4.8 and higher have the following directives and path:
- SSL Certificate file – The path of your certificate file
- SSLCertificate KeyFile – The path of your key file
- SSLCertificate Path – The intermediate bundle path. Here’s an example of your certificates’ absolute file path. You can copy-paste the code below, but make sure to specify the correct names of your files.
- Save your configuration and restart Apache to complete the SSL installation.
Step 3 — Checking your Certificate Status
At this point, you can ensure that Certbot created your SSL certificate correctly by using the SSL Server Test from the cloud security company Qualys.
Open the following link in your preferred web browser, replacing with your base domain:
You will land on a page that immediately begins testing the SSL connection to your server:
Once the test starts running, it may take a few minutes to complete. The status of the test will update in your browser.
When the testing finishes, the page will display a letter grade that rates the security and quality of your server’s configuration. At the time of this writing, default settings will give an A rating:
For more information about how SSL Labs determines these grades, check out the SSL Labs Grading post detailing the updates made to the grading scheme in January, 2018.
Try reloading your website using and notice your browser’s security indicator. It will now indicate that the site is properly secured, usually with a green lock icon.
With your SSL certificate up and verified, the next step is to set up auto-renewal for your certificate to keep your certificate valid.
Prerequisites
Before you begin with this guide, there are a few steps that need to be completed first.
You will need access to a CentOS 7 server with a non-root user that has privileges. If you haven’t configured this yet, you can run through the CentOS 7 initial server setup guide to create this account.
You will also need to have Apache installed in order to configure virtual hosts for it. If you haven’t already done so, you can use to install Apache through CentOS’s default software repositories:
Next, enable Apache as a CentOS service so that it will automatically start after a reboot:
After these steps are complete, you can log in as your non-root user account through SSH and continue with the tutorial.
Install SSL Certificate with Let’s Encrypt
Let’s Encrypt is a free, open, and automated certificate authority. It uses the certbot software tool to administer certificates automatically.
Certbot is a highly automated tool. Make sure that that your Apache installation is valid and that you have a virtual host configured for your domain/s. You should first read our tutorial on how to install Apache on CentOS 7 if you need assistance with configuring your firewall and virtual hosts.
Certbot Installation
1. Use the command terminal to install the EPEL repository and yum-utils:
2. Next, install a module that supports SSL for Apache:
In this example, the latest version of the module is already available.
3. We can now install certbot for Apache:
4. Once the installation runs its course, you can start the process to obtain a certificate by entering:
Alternatively, start certbot by typing:
The next prompt allows you to force all requests to secure HTTPS access.
Once you have made your choices, the message on the terminal confirms that you have enabled encryption for your domain.
Automatic Certificate Renewal
The certificates issued by Let’s Encrypt are valid for 90 days. The certbot renew command checks the installed certificates and tries to renew them if they are less than 30 days away from expiration. To automate this process, create a cron job to execute the command periodically.
Use your preferred text editor to define how often to execute the renew command:
Enter this line and save the crontab:
Настройка ssl сертификата Lets Encrypt в apache
Теперь настроим работу web сервера apache с ssl сертификатом. Хотя если быть точным, то tls сертификатом. Устанавливаем пакет certbot для получения бесплатного ssl сертификата от let’s encrypt. В репозиториях centos 8 его пока нет, поэтому поставим вручную с сайта разрабочиков.
При первом запуске certbot-auto предложит установить зависимости, которые ему нужны для работы. Он написан на python, поэтому зависимостей в виде модулей питона будет много.
После установки пакетов certbot напишет ошибку, что не может сам настроить apache.
Настроим все сами. Для начала создадим самоподписанный дефолтный сертификат, чтобы apache не ругался на отсутствие файла и смог запуститься.
Все параметры оставляйте дефолтные, не принципиально. Мы этот сертификат использовать не будет. Перезапустите apache.
Теперь выпустим сертификат для нашего домена. Имейте ввиду, чтобы получить сертификат у вас должно быть действующее доменное имя, ссылающееся на web сервер, который настраиваете. Let’s Encrypt будет по доменному имени обращаться к серверу, на котором настраиваете сертификат, чтобы проверить домен. В тестовой лаборатории с вымышленным доменным именем получить настоящий ssl сертификат не получится.
В качестве способа аутентификации выбирайте
Дальше заполняйте в соответствии с вашими названиями. После получения сертификата, укажем его в конфигурации виртуального хоста. В моем случае в файле z.serveradmin.ru.conf. Добавляем туда параметры ssl.
Перезапускайте apache и проверяйте работу сайта по https, зайдя по соответствующему протоколу.
По аналогии делаете с остальными виртуальными хостами, для которых используете бесплатные сертификаты let’s encrypt. Осталось дело за малым — настроить автоматический выпуск новых ssl сертификатов, взамен просроченным. Для этого добавляем в /etc/crontab следующую строку:
Переадресация с http на https в apache
В настроенном ранее примере https отлично работает, но неудобно, что нет автоматической переадресации с http на https. Чтобы использовать безопасную версию сайта, необходимо вручную в браузере набирать https. Хотя все современные браузеры уже сами умеют проверять версии сайта и если есть защищенная, то они автоматически сами ее выбирают.
Тем не менее, лучше все же добавить редирект с http на https. Его можно сделать двумя различными способами:
- Через файл .htaccess
- С помощью настройки виртуального хоста.
Мне нравится больше второй вариант, поэтому приводим конфиг виртуального хоста к следующему виду.
Перечитывайте конфиг httpd и проверяйте. Должно работать автоматическое перенаправление на https версию.
Шаг 2. Установка модуля SSL для Apache
Прежде, чем устанавливать модуль, выполняем команду:
apachectl -M | grep ssl
Если видим строчку, на подобие:
ssl_module (shared)
Спускаемся к шагу 3 данной инструкции.
Иначе, устанавливаем httpd ssl_module.
а) Для CentOS:
yum install mod_ssl
б) Для Ubuntu/Debian:
a2enmod ssl
в) Для FreeBSD:
Открываем файл конфигурации apache:
ee /usr/local/etc/apache24/httpd.conf
* подразумевается, что используется apache 2.4.
Находим и снимаем комментарии со следующих строчек:
…
LoadModule ssl_module libexec/apache24/mod_ssl.so
…
Include etc/apache24/extra/httpd-ssl.conf
…
И ставим комментарии в следующих строках:
#<IfModule ssl_module>
#SSLRandomSeed startup builtin
#SSLRandomSeed connect builtin
#</IfModule>
Чтобы настройки применились, необходимо перезапустить веб-сервер одной из команд:
systemctl restart httpd
systemctl restart apache2
service apache2 restart
* первая, как правило, используется в системах на базе RPM, вторая — DEB, третья — BSD.
Шаг 3 — Настройка SSL сертификата
Certbot — это отличный инструмент для управления SSL сертификатами, также он имеет возможность сгенерировать новый сертификат для определенного домена.
Здесь в качестве примера для которого будет создан сертификат, будет использоваться домен example.ru:
certbot --apache -d example.ru
Если вы хотите сгенерировать несколько SSL сертификатов для нескольких доменов и субдоменов, запустите эту команду:
certbot --apache -d example.ru -d www.example.ru
ВАЖНО! Первый домен должен быть вашим базовым доменом, в этом примере это example.ru. Как только установка будет завершена, вы увидите следующее сообщение:
Как только установка будет завершена, вы увидите следующее сообщение:
IMPORTANT NOTES: - If you lose your account credentials, you can recover through e-mails sent to [email protected]. - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2016-04-21. To obtain a new version of the certificate in the future, simply run Let's Encrypt again. - Your account credentials have been saved in your Let's Encrypt configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Let's Encrypt so making regular backups of this folder is ideal. - If you like Let's Encrypt, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Шаг 5 — Настройка разрешений SELinux для виртуальных хостов (рекомендуется)
SELinux — это модуль безопасности ядра Linux, который обеспечивает повышенную безопасность для систем Linux. CentOS 8 оснащается модулем SELinux, настроенным работу с конфигурацией Apache по умолчанию. Поскольку вы изменили стандартную конфигурацию, настроив пользовательскую директорию журналов в файле конфигурации виртуальных хостов, вы получите ошибку при попытке запуска службы Apache. Для устранения данной проблемы вам нужно обновить политики SELinux, чтобы разрешить Apache записывать данные в нужные файлы.
Существуют различные способы настройки политики с учетом потребностей вашей среды, поскольку SELinux позволяет настраивать необходимый вам уровень безопасности. На этом шаге мы обсудим два метода внесения изменений в политики Apache: универсально и в конкретной директории. Изменение политики в директориях является более безопасным, поэтому мы рекомендуем использовать этот подход.
Универсальное изменение политик Apache
Универсальная настройка политики Apache позволит SELinux одинаковым образом использовать все процессы Apache, используя для этого булеву переменную
Хотя этот подход более удобен, он не обеспечивает аналогичный уровень контроля, что и подход, который подразумевает внимание к политике для отдельных файлов и директорий
Запустите следующую команду для установки универсальной политики Apache:
Команда меняет значения булевых значений SELinux. Флаг будет обновлять значение времени начальной загрузки, а обновленное значение сохраняется между перезагрузками. — это булево значение, которое позволит SELinux рассматривать все процессы Apache как один тип, поэтому вы активировали его со значением .
Изменение политик Apache для директории
Индивидуальная настройка разрешений SELinux для директории позволит вам получить более полноценный контроль за политиками Apache, но также может потребовать дополнительных действий. Поскольку этот параметр не подразумевает наличия универсально настроенных политик, вам нужно будет вручную задать тип контекста для любых новых директорий.
Вначале проверьте тип контекста, который SELinux указал для директории :
Эта команда формирует список и выводит контекст SELinux из директории. Вы получите примерно следующий результат:
В настоящее время используется контекст , который указывает SELinux, что процесс Apache может читать только файлы, созданные в этой директории. В ходе данного обучающего руководства вы измените тип контекста директории на . Этот тип позволит Apache генерировать и добавлять данные в файлы журнала веб-приложения:
Затем воспользуйтесь командой для применения этих изменений и их сохранения между перезагрузками:
Флаг запускает эту команду рекурсивно, т. е. она будет обновлять любые существующие файлы для использования нового контекста. Флаг будет распечатывать изменения контекста, внесенные командой. Вы увидите следующий вывод, подтверждающий изменения:
Вы можете вывести список контекста еще раз, чтобы посмотреть изменения:
Результат отражает обновленный тип контекста:
Теперь, когда директория использует тип , вы готовы протестировать вашу конфигурацию виртуального хоста.
Установка и настройка PhpMyAdmin (PMA)
Ставить будем вручную. Для этого нам потребуется менеджер загрузок wget. Если у вас нет, то ставим: Идем на http://www.phpmyadmin.net/home_page/downloads.php и копируем ссылку на самую последнюю мультиязычную версию PhpMyAdmin со сжатием .tar.gz (На данный момент это — http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.5.6/phpMyAdmin-3.5.6-all-languages.tar.gz/download#!md5!aa6c996d264f4c04c00cbb2e97f3972a). Идем в /var/www/html/: Скачиваем PMA: В директории появится архив , распаковываем его: Переименуем директорию phpMyAdmin-3.5.6-all-languages в phpmyadmin: Удалим архив phpMyAdmin-3.5.6-all-languages.tar.gz т.к. он нам больше не нужен:
По идее у нас уже полностью рабочий PhpMyAdmin должен быть доступен по адресу — https://IP-адрес_сервера/phpmyadmin/
На этом можно завершить базовую настройку VPS/VDS сервера под управлением CentOS
Шаг 1. Создание сертификата
Для боевого сервера, сертификат должен быть получен от доверенного центра сертификации — либо локального для компании, либо коммерческого. Или получен бесплатно от Let’s Ecnrypt.
Для тестовой среды можно сгенерировать самоподписанный сертификат. Для этого сперва переходим в рабочую папку.
а) на Red Hat / CentOS:
cd /etc/httpd
б) на Debian / Ubuntu:
cd /etc/apache2
в) во FreeBSD:
cd /usr/local/etc/apache24
Создаем папку для сертификатов и переходим в нее:
mkdir ssl ; cd ssl
И генерируем сертификат:
openssl req -new -x509 -days 1461 -nodes -out cert.pem -keyout cert.key -subj «/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=test.dmosk.local/CN=test»
* в данном примере созданы открытый и закрытый ключи на 4 года (1461 день); значения параметра subj могут быть любыми в рамках тестирования.