Centos 7 настройка apache: НАСТРОЙКА APACHE В CENTOS 7

Содержание

Создание самоподписанного SSL-сертификата на Apache в CentOS в 4 шага. Просто и наглядно. | PingMeUp

Сегодняшняя моя статья посвящена созданию и размещению SSL-сертификата на веб-сервере Apache под управлением операционной системы CentOS. Конкретно в своем примере буду использовать CentOS 7.

И так, что же такое эти все SSL?

Для справки: TLS (или Transport Layer Security, протокол безопасности транспортного уровня) и предшествующий ему SSL (Secure Sockets Layer) – это сетевые протоколы, которые шифруют и тем самым защищают трафик. Благодаря этой технологии процесс обмена данными между клиентом и сервером надежно защищен от перехвата посторонним абонентом. Кроме того, система сертификации помогает пользователям проверить подлинность сайта.

Как я уже говорил, в этой статье я рассмотрю вариант создания самоподписанного SSL-сертификата для веб-сервера Apache на виртуальном выделенном сервере CentOS 7. Самостоятельно подписанный сертификат не может подтвердить подлинность сайта, поскольку он не заверен центром сертификации (CA), которому может доверять браузер; тем не менее он будет шифровать взаимодействие между сервером и посетителями сайта, и тем самым повысит безопасность соединения, что очень важно.

Для выполнения данных процедур вам понадобится настроенный сервер CentOS 7 и нерут учетная запись пользователя с расширенными привилегиями sudo.
Соответственно, Apache вам тоже понадобится — для его установки можно использовать стандартный менеджер пакетов yum:
sudo yum install httpd

Затем запускаем Apache в качестве сервиса CentOS, чтобы автоматизировать запуск Apache после перезагрузки:
sudo systemctl enable httpd.service

— И только после этого приступаем к установке SSL.

На все про все у вас уйдет на эту процедуру максимум 20 минут, даже если вы новичок и никогда подобного не делали.

1. Установка mod_ssl

Чтобы создать самоподписаный сертификат, для начала нужно установить mod_ssl, модуль Apache для поддержки шифрования SSL. Для этого исполняем команду:

sudo yum install mod_ssl

После установки модуль включится автоматически, после чего Apache сможет использовать сертификаты SSL. Осталось только перезапустить Apache, чтобы mod_ssl был готов к использованию.

2. Создание SSL-сертификата

Теперь веб-сервер подготовлен к шифрованию данных. Приступайте к созданию нового SSL-сертификата. Сертификат должен содержать некоторую базовую информацию о сайте. В паре к сертификату обязательно прилагается key-файл, благодаря которому сервер может обрабатывать зашифрованные данные.
Создаем новый каталог, в котором будет храниться ключ сервера (key-файл) и сам сертификат командой:
sudo mkdir /etc/httpd/ssl

Далее, при помощи команды openssl генерируем ключ и сертификат SSL:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

Даю вам справочную информацию по параметрам генерации ключа:

Команда openssl — это инструмент командной строки для создания и управления сертификатами, ключами и другими файлами связанными с OpenSSL;
 req -x509 — этот параметр указывает, что в команде нужно использовать запрос на подпись сертификата (CSR) X. 509. X.509 – это стандарт инфраструктуры открытых ключей, которого придерживаются SSL и TLS в управлении ключами и сертификатами.
-nodes —  этот параметр используется в случае если вы не хотите защищать сертификат паролем. Веб-сервер Apache должен иметь возможность читать файл без вмешательства пользователя, и в нашем случае это будет мешать, так как пароль придется вводить вручную после каждой перезагрузки.
-days 365 — этот параметр устанавливает срок действия сертификата (в данном случае сертификат действителен в течение года).
-newkey rsa:2048 — этот параметр одновременно создает сертификат и ключ. Поскольку ключ, который необходим для подписи сертификата, не был создан ранее, его нужно создать сейчас. Опция rsa:2048 создаст 2048-битный RSA-ключ.
 -keyout —  параметр указывает каталог, в который нужно поместить закрытый ключ.
-out —  с помощью этого параметра указывается каталог, в который нужно поместить сертификат.

После этой строки с запросом на генерацию сертификата откроется командная строка, в которой можно ввести информацию о сайте. 

Самым важным полем в форме является Common Name, в котором нужно указать доменное имя сайта или внешний IP-адрес сервера. Форма имеет такой вид:

Country Name (2 letter code) [XX]:RU
State or Province Name (full name) []:Russia
Locality Name (eg, city) [Default City]:Youcityname
Organization Name (eg, company) [Default Company Ltd]:none
Organizational Unit Name (eg, section) []:none
Common Name (eg, your name or your server’s hostname) []:yoursiteorip.ru
Email Address []:[email protected]

3. Установка SSL-сертификата

Итак, все необходимые компоненты готовы. Теперь нужно настроить виртуальный хост для отображения нового сертификата.
Откройте конфигурационный файл Apache для SSL в текстовом редакторе с привилегиями root:
sudo nano /etc/httpd/conf.d/ssl.conf

Найдите раздел, который начинается с . В него нужно внести несколько изменений, чтобы сертификат должным образом отображался на сайте.

Сначала раскомментируйте строку DocumentRoot и отредактируйте адрес в кавычках, указав свой каталог document root. По умолчанию это /var/www/html;

если вы используете другой root-каталог веб-сервера, укажите в этой строке правильный адрес.
DocumentRoot «/var/www/example.com/public_html»

Затем раскомментируйте строку ServerName (вместо www.example.com укажите свое доменное имя или IP, в зависимости от того, что было указано в поле Common Name).

ServerName www.yoursiteorip.ru:443
Найдите строки SSLCertificateFile и SSLCertificateKeyFile и укажите в них адрес ключа и сертификата – каталог /etc/httpd/ssl:

  • SSLCertificateFile /etc/httpd/ssl/apache.crt
  • SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Внеся все изменения, сохраните и закройте файл.

4. Активация сертификата SSL

На данный момент SSL-сертификат и веб-сервер готовы. Чтобы применить все изменения и запустить шифрование SSL, перезапустите сервер Apache, это обновит его конфигурации:
sudo apachectl restart

Чтобы увидеть новый сертификат в действии, посетите в браузере доменное имя или IP в таком формате:
https://yoursiteorip.ru/

Скорее всего, браузер выдаст предупреждение вроде «site’s security certificate is not trusted». Это значит, что браузер не может доверять сертификату, который не был заверен авторитетным центром сертификации. Это вполне ожидаемая реакция.
Чтобы продолжить, нужно добавить исключение в проверку подлинности браузера.

Так же хочу отметить, что в последствии, при выпуске полноценного, не самоподписанного сертификата вам просто нужно будет положить их в те же директории на сервере с тем же именем сертификата и ключа — в нашем примере это были пути:

/etc/httpd/ssl/apache.crt

и

/etc/httpd/ssl/apache.key

и соответствующие имена файлов — apache. crt  для файла сертификата и apache.key — для файла ключа.

На этом все, мы справились — настройка SSL для вашего сайта завершена и ваш сервер Apache поддерживает запросы HTTP и HTTPS. Это обезопасит взаимодействие с клиентами, повысит доверие поисковых систем, а так же не позволит посторонним читать межсайтовый трафик.

На сегодня это всё! Подписывайтесь на обновления блога.

Как установить Let’s Encrypt с Apache на CentOS 7

 

В этом уроке мы покажем вам, как установить клиент Let’s Encrypt на ваш CentOS 7 VPS и выдать сертификат SSL для вашего домена.

Повышение безопасности вашего сайта с помощью SSL-шифрования может повысить доверие ваших посетителей к вашему сайту. В прошлом настройка SSL-шифрования на веб-сайте была сложной задачей. Однако Let’s Encrypt — это бесплатный центр сертификации с открытым исходным кодом, который позволяет получать и устанавливать сертификаты с помощью простых автоматизированных команд. Благодаря им настройка шифрования и повышение безопасности вашего сайта стало намного проще. Let’s Encrypt предоставляет действительный сертификат SSL для вашего домена без каких-либо затрат и может быть использован также для производственного / коммерческого использования.

Давайте начнем с установки — это простая установка, и она не займет много времени.

Содержание

Предпосылки

  • Для целей данного урока мы будем использовать CentOS 7 VPS.
  • Также необходим полный root-доступ по SSH или пользователь с правами sudo.
  • Допустимое доменное имя указывает на IP-адрес вашего сервера. В этом уроке мы будем использовать domain.com.

Шаг 1: подключитесь через SSH и обновите ОС

Подключитесь к вашему серверу через SSH как пользователь root с помощью следующей команды:

ssh [электронная почта защищена] IP_ADDRESS -p PORT_NUMBER

Не забудьте заменить «IP_ADDRESS» и «PORT_NUMBER» на соответствующий IP-адрес вашего сервера и номер порта SSH.

Перед началом установки вам необходимо обновить пакеты ОС до их последних версий. Это легко сделать, и это не займет больше нескольких минут.

Вы можете сделать это, выполнив следующую команду:

ням обновления

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

Шаг 2: Установите LAMP Stack

Нам нужно установить стек LAMP на сервере. Он состоит из Linux (который у нас уже есть), Apache, MySQL и PHP. Мы можем установить его, выполнив следующую команду:

ням установить httpd mariadb-сервер php php-cli php-common

После установки всех пакетов запустите службы Apache и MariaDB:

systemctl начать httpd systemctl начать mariadb

Разрешите им запускаться при загрузке сервера с помощью следующей команды:

systemctl включить httpd systemctl включить mariadb

Шаг 3: настройка Apache

Нам нужно создать новый файл конфигурации Apache. Мы можем создать его с помощью следующей команды:

nano /etc/httpd/conf.d/domain.com.conf

Добавьте следующие строки:

ServerAdmin [электронная почта защищена] domain. com DocumentRoot "/ var / www / html" DirectoryIndex index.html ServerName domain.com ErrorLog "/var/log/httpd/domain.com.error_log" CustomLog "/ var / log / httpd / domain .com.access_log "общий

Сохраните и закройте файл.

Затем создайте index.html файл для тестирования с помощью следующей команды:

nano /var/www/html/index.html

Добавьте следующие строки:

Тест - Добро пожаловать на веб-сервер Apache.

Сохраните файл и измените владельца файла /var/www/html/index.html пользователю Apache, чтобы Apache мог прочитать файл:

chown -R apache: apache /var/www/html/index.html

Не забудьте изменить domain.com с вашим фактическим доменным именем.
Теперь, когда у нас установлен Apache, мы можем продолжить и установить certbot.

Шаг 4: Установите Certbot

Нам нужно установить Certbot и включить mod_ssl Модуль Apache на сервере. Certbot — это простой и удобный инструмент, который упрощает управление сервером, автоматизируя получение сертификатов и настраивая веб-службы для их использования.

По умолчанию пакет Certbot недоступен в репозитории ОС CentOS 7 по умолчанию. Нам нужно включить репозиторий EPEL, затем установить Certbot.

Чтобы добавить EPEL-репозиторий, выполните следующую команду:

yum install epel-release

После включения установите все необходимые пакеты с помощью следующей команды:

yum установить certbot python2-certbot-apache mod_ssl

После установки мы можем перейти к следующему шагу.

Шаг 5: получите и установите SSL для вашего домена

Теперь, когда Certbot установлен, вы можете использовать его для получения и установки SSL-сертификата для вашего домена.

Просто запустите следующую команду, чтобы получить и установить сертификат SSL для вашего домена:

certbot --apache -d domain.com

Мы также можем установить один сертификат для нескольких доменов и поддоменов, размещенных на сервере, с флагом ‘-d’, например:

certbot --apache -d domain.com -d www.domain.com -d domain2.com -d test. domain2.com

Нас попросят предоставить адрес электронной почты и принять условия обслуживания.

Сохранение журнала отладки в /var/log/letsencrypt/letsencrypt.log Выбранные плагины: Apache Authenticator, Apache установщика Введите адрес электронной почты (используется для срочного обновления и уведомления о безопасности) (введите «c» для отмены): [электронная почта защищена] Запуск нового HTTPS соединение (1): acme-v02.api.letsencrypt.org - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Пожалуйста, ознакомьтесь с Условиями предоставления услуг по адресу https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Вы должны согласиться, чтобы зарегистрироваться на сервере ACME по адресу https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A) gree / (C) ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Хотели бы вы поделиться своим адресом электронной почты с Фондом электронных границ, партнером-основателем проекта Let's Encrypt и некоммерческой организацией, которая разрабатывает Certbot ? Мы хотели бы отправить вам электронное письмо о нашей работе по шифрованию Интернета, новостях EFF, кампаниях и способах поддержки цифровой свободы.  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Да нет: N Запуск нового HTTPS-соединения (1): supporters.eff.org Получение нового сертификата Выполнение следующих задач: вызов http-01 для domain.com Ожидание проверки ... Очистка вызовов Создан виртуальный хост SSL в / etc / httpd / conf.d / domain.com-le-ssl.conf Развертывание сертификата в VirtualHost /etc/httpd/conf.d/domain.com-le-ssl.conf

Введите Y и нажмите [Enter], и вы должны увидеть следующий вывод:

Пожалуйста, выберите, следует ли перенаправлять HTTP-трафик на HTTPS, удаляя доступ HTTP. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Нет перенаправления - Не вносите никаких изменений в конфигурация веб-сервера. 2: Redirect - перенаправить все запросы на безопасный доступ HTTPS. Выберите это для новых сайтов, или если вы уверены, что ваш сайт работает по HTTPS. Вы можете отменить это изменение, отредактировав конфигурацию вашего веб-сервера.  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Выберите соответствующий номер [1-2], затем [введите] (нажмите «c» для отмены): 2

Здесь вам нужно выбрать один из вариантов, чтобы продолжить. Если вы выберете опцию 1, он будет загружать только SSL-сертификат, и вам необходимо вручную настроить Apache для использования SSL-сертификата. Если вы выберете опцию 2, он автоматически загрузит и настроит Apache для использования SSL-сертификата. В этом случае выберите опцию 2 и нажмите [Enter]. Когда установка будет успешно завершена, вы увидите сообщение, похожее на это:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Поздравляем! Вы успешно включили https://domain.com
ВАЖНЫЕ ЗАМЕЧАНИЯ: - Поздравляем! Ваш сертификат и цепочка были сохранены по адресу: /etc/letsencrypt/live/domain.com-0001/fullchain.pem Ваш ключевой файл был сохранен по адресу: /etc/letsencrypt/live/domain.com-0001/privkey.pem Ваш Срок действия сертификата истекает 2019-10-22.  Чтобы получить новую или измененную версию этого сертификата в будущем, просто запустите certbot снова с опцией «certonly». Чтобы не интерактивно продлевать * все * ваши сертификаты, запустите «certbot renew» - если вам нравится Certbot, рассмотрите возможность поддержки нашей работы следующим образом: Пожертвования для ISRG / Let's Encrypt: https://letsencrypt.org/donate Пожертвования для EFF: https://eff.org/donate-le

Сгенерированные файлы сертификатов доступны в /etc/letsencrypt/live/domain.com каталог. Вы можете проверить вновь созданный сертификат SSL с помощью следующей команды:

ls /etc/letsencrypt/live/domain.com/

Вы должны увидеть следующий результат:

cert.pem chain.pem fullchain.pem privkey.pem

Шаг 6: проверьте свой сертификат SSL

Откройте веб-браузер и введите URL-адрес https://domain.com , Чтобы проверить SSL-сертификат в Chrome, нажмите значок замка в адресной строке для https://domain.com, а во всплывающем окне нажмите «Действительный» под приглашением «Сертификат».

Шаг 7: настройка автоматического продления

По умолчанию сертификаты Let’s Encrypt действительны в течение дней 90, поэтому рекомендуется обновить сертификат до истечения срока его действия. В идеале было бы лучше автоматизировать процесс обновления, чтобы периодически проверять и обновлять сертификат.

Мы можем проверить процесс обновления вручную с помощью следующей команды.

certbot renew --dry-run

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

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

Для этого отредактируйте crontab с помощью следующей команды:

кронтаб -e

Добавьте следующую строку:

* * / 12 * * * root / usr / bin / certbot обновить> / dev / null 2> & 1

Сохраните и закройте файл.

Поздравляем! Мы успешно установили и настроили Let’s Encrypt с Apache на CentOS 7 VPS.

Как установить Apache на CentOS/RHEL 8

CentOS 8 — это последняя версия операционной системы CentOS Linux, основанная на Red Hat Enterprise Linux 8. В этом руководстве мы поможем вам установить веб-сервер Apache на CentOS. 8 или RHEL 8 с дополнительной настройкой и безопасностью.

Предварительные требования

  • SSH-доступ к системе CentOS/RHEL 8
  • Привилегии Sudo пользователю для установки пакетов

Шаг 1 — Установка Apache на CentOS 8

Прежде всего, войдите в свою систему CentOS 8 или RHEL 8 через SSH. Затем установите пакеты HTTP-сервера Apache2 с помощью следующей команды. Это также установит дополнительные необходимые пакеты в вашей системе.

sudo dnf установить httpd
 

Дождитесь завершения установки

Шаг 2. Управление службой Apache

Служба Apache управляется с помощью командной строки systemctl в CentOS/RHEL 8. После установки используйте следующую команду, чтобы включить службу Apache, а затем запустить ее.

sudo systemctl включить httpd.service
sudo systemctl запустить httpd.service
 

Вот другие команды для остановки и перезапуска службы Apache через командную строку.

sudo systemctl остановить apache2.service
sudo systemctl перезапустить apache2.service
 

Шаг 3. Проверка установки Apache

Вы можете просмотреть сведения об установленной версии Apache с помощью следующей команды.

httpd -v
Версия сервера: Apache/2.4.37 (centos)
Сервер построен: 7 октября 2019 21:42:02
 

Создайте тестовую HTML-страницу в корневом каталоге документов по умолчанию (/var/www/html).

sudo echo "Привет, TecAdmin.net" > /var/www/html/index.html
 

Теперь получите доступ к вашему серверу Apache, используя IP-адрес сервера или домен, указывающий на IP-адрес сервера.

Шаг 4 — Создание VirtualHost

Давайте создадим первый виртуальный хост на вашем сервере Apache. Для руководства мы используем пример домена «example. com». Здесь мы создадим виртуальный хост для примера.com на порту 80.

Создайте образец индексного файла в каталоге:

sudo mkdir -p /var/www/example.com
эхо "привет, example.com" | sudo тройник /var/www/example.com/index.html
 

Затем создайте файл конфигурации Virtualhost и отредактируйте в редакторе:

sudo vim /etc/httpd/conf.d/example.com.conf
 

Добавьте следующее содержимое в конец файла конфигурации. Вы можете изменить доменное имя в соответствии с вашим доменом.

<Виртуальный хост *:80>
Администратор сервера [email protected]
DocumentRoot /var/www/example.com
Имя сервера example.com
Псевдоним сервера www.example.com
<Каталог /var/www/example.com>
#Allowoverride all ###Раскомментируйте, если требуется

Журналы ErrorLog/example.com_error.log
Журналы CustomLog/example.com_access.log объединены

1

2

3

4

5

6

7

8

9

10

11

12

13

    ServerAdmin admin@example. com

    DocumentRoot /var/www/example.com

    ServerName example.com

    ServerAlias ​​www.example.com

 

    <Каталог /var/www/example.com>

           #Allowoverride all    ###Раскомментируйте, если необходимо  CustomLog logs/example.com_access.log вместе взятые

Сохраните файл конфигурации Virtualhost и перезагрузите службу Apache, используя следующие команды:

sudo systemctl перезагрузить httpd.service
 

Шаг 5. Настройка SSL VirtualHost

Вы можете пропустить этот шаг, если вам не нужен SSL. Но безопасность всегда является главной задачей для любого веб-сайта. Чтобы использовать SSL с Apache, установите пакет mod_ssl в вашей системе.

sudo dnf установить mod_ssl
 

В этом руководстве я следовал этим инструкциям, чтобы сгенерировать самозаверяющий сертификат SSL для нашего домена.

Вы можете либо использовать /etc/httpd/conf/ssl. conf для виртуального хоста SSL, либо использовать отдельный файл конфигурации виртуального хоста для своего домена. Например:

sudo vim /etc/httpd/conf.d/example.com_ssl.conf
 

со следующим содержанием:

<Виртуальный хост *:443>
Администратор сервера [email protected]
DocumentRoot /var/www/example.com

Имя сервера example.com
Псевдоним сервера www.example.com

<Каталог /var/www/example.com>
#Allowoverride all ###Раскомментируйте, если требуется

SSLEngine включен
SSLCertificateFile /etc/pki/tls/certs/example.com.crt
SSLCertificateKeyFile /etc/pki/tls/certs/example.com.key

Журналы ErrorLog/example.com_ssl-error.log
Журналы CustomLog/example.com_ssl-access.log объединены

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

    ServerAdmin admin@example. com

    DocumentRoot /var/ www/example.com

    ServerName example.com

    ServerAlias ​​www.example.com

    

           #Allowoverride all    ###Раскомментируйте, если требуется   SSLEngine на

    SSLCertificateFile /etc/pki/tls/certs/example. com.crt

    SSLCertificateKeyFile /etc/pki/tls/certs/example.com.key

    Журналы ErrorLog/example.com_ssl-error.log

    Журналы CustomLog/example.com_ssl-access.log комбинированный

Вот три термина, используемых для настройки виртуального хоста SSL:

  • SSLEngine — Установите для этого параметра значение «включено»
  • SSLCertificateFile — Укажите путь к вашему SSL-сертификату
  • SSLCertificateKeyFile — Это файлы закрытого ключа, используемые для создания сертификата SSL

После этого включите Virtualhost и перезагрузите службу Apache, используя следующие команды:

sudo systemctl перезагрузить apache2. service
 

Шаг 6. Безопасный сервер Apache

Безопасность — самая важная часть хостинга. Хакеры готовы взломать ваш веб-сервер. Изменить основной файл конфигурации Apache

Судо ВИМ /etc/httpd/conf/httpd.conf
 

Добавьте в конец файла следующие значения:

Серверные токены Prod
Подпись сервера выключена
TraceEnable Выкл.

ServerTokens Prod

ServerSignature Выкл.

TraceEnable Выкл.

После этого отредактируйте файл конфигурации Apache по умолчанию SSL:

sudo vim /etc/httpd/conf.d/ssl.conf
 

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

#Правила взяты с https://cipherli.st/
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM
# Требуется Apache 2.4.36 и OpenSSL 1.1.1
Протокол SSL-все +TLSv1.3 +TLSv1. 2
Кривые SSLOpenSSLConfCmd X25519:secp521r1:secp384r1:prime256v1
# Старые версии
# Протокол SSL Все -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder включен
Заголовок всегда устанавливает Strict-Transport-Security «max-age=63072000; includeSubDomains; preload»
Заголовок всегда устанавливает X-Frame-Options DENY
Заголовок всегда устанавливает X-Content-Type-Options nosniff
# Требуется Apache >= 2.4
SSLCompression выключен
SSLUseStapling включен
SSLStaplingCache «shmcb: logs/stapling-cache(150000)»
# Требуется Apache >= 2.4.11
SSLSessionTickets Выкл.

901 19

После внесения изменений перезапустите службу Apache, чтобы применить новую конфигурацию.

sudo systemctl перезагрузить apache2.service
 

Заключение

Готово. Вы используете защищенный сервер Apache в системе CentOS 8 или RHEL 8 Linux.

Установите Let’s Encrypt на CentOS 7 с apache

Приблизительное время прочтения: 2 мин.

В этом руководстве вы изучите процедуру установки сертификата TLS/SSL на веб-сервер Apache, работающий на Centos 7. После того, как вы закончите, весь трафик между сервером и клиентом будет зашифрован и безопасен. Это стандартная практика защиты веб-сайтов электронной коммерции и других финансовых услуг в Интернете.

Предварительные условия

Прежде чем приступить к работе с этим руководством, вам понадобятся:

  • SSH с доступом пользователя Root к вашему CentOS 7 VPS
  • Веб-сервер Apache с правильной настройкой домена и виртуального хоста
Шаг 1: Установка зависимых модулей

После подключения по ssh от имени root к CentOS VPS вам необходимо установить certbot, поэтому вам придется установить репозиторий EPEL, поскольку он недоступен по умолчанию, а модуль mod_ssl является обязательным для распознавания шифрования в Apache.

Чтобы установить обе эти зависимости, выполните следующую команду:

 yum install epel-release mod_ssl 

Теперь вы должны быть готовы продолжить и установить сам certbot.

Шаг 2: Загрузка клиента Let’s Encrypt

Чтобы установить клиент certbot из репозитория EPEL, выполните следующее:

 yum install python-certbot-apache 

В течение нескольких раз certbot должен быть установлен и доступен для фактического использования.

Шаг 3: Создайте и установите SSL-сертификат(ы)

Certbot довольно легко справится с управлением SSL-сертификатами, он создаст новый сертификат для указанного домена в качестве параметра.

В этом случае в качестве домена, для которого будет выпущен сертификат, будет использоваться example.com:

 certbot --apache -d example.com 

Если вы хотите сгенерировать SSL для нескольких доменов или субдоменов, выполните следующую команду:

 certbot --apache -d example.com -d www.example.com 

ВАЖНЫЙ! Первый домен должен быть вашим базовым доменом, в этом примере это example. com

. При установке сертификата вам будет представлено пошаговое руководство, которое позволит вам настроить детали сертификата. Вы сможете выбрать между форсированием https или сохранением HTTP в качестве протокола по умолчанию, также потребуется указать адрес электронной почты в целях безопасности.

После завершения установки вы должны увидеть похожее сообщение:

Шаг 4: Настройка автоматического обновления

Сертификаты Let’s Encrypt действительны только в течение 90 дней, но каждый веб-профессионал рекомендуем вам продлить его в течение 75 дней, чтобы избежать каких-либо проблем. Для этого нам поможет certbot с командой обновления. Он проверит, осталось ли менее 15 дней до истечения срока действия сертификата.

Для продолжения выполните следующую команду:

 certbot renew 

Если сертификат установлен недавно, certbot проверит только срок его действия:

Чтобы автоматизировать этот процесс обновления, вы можете настроить cronjob.

Imacros | Все права защищены © 2021

1

2

3

4

5

6

7

8

9

9000 2 10

11

12

13

14

15

16

17

18

# Правила взяты с https://cipherli.st/

 

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM

# Требуется Apache 2.4.36 и OpenSSL 1.1.1

Протокол SSL-все +TLSv1. 3 +TLSv1.2

SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1

# Старые версии

# SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

SSLHonor CipherOrder On

Заголовок всегда устанавливает Strict-Transport-Security «max-age= 63072000; includeSubDomains; preload»

Заголовок всегда установлен X-Frame-Options DENY

Заголовок всегда установлен X-Content-Type-Options nosniff

# Требуется Apache >= 2.4

SSLCompression off

SSLUseStapling on

SSLStaplingCache «shmcb:logs/stapling-cache(150000)»

# Требуется Apache >= 2.4.11

SSLSessionTickets Off