Защитите apache с помощью let’s encrypt на centos 8

Получаем сертификаты

Ввиду лимитов на обращения сначала попробуем получить сертификат для основного домена в режиме «сухого прогона»:

Этот вызов должен завершиться без сообщений об ошибках.

Если так, то получим сертификат уже в самом деле.

Символические ссылки на сертификаты Certbot помещает в каталоги с разбивкой по доменам.

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

Команда должна вывести список доменов для каждого из имеющихся сертификатов.

Чтобы не занимать в голове место порядком ключей для , добавим обёртку для него.

Использовать её очень просто.

Добавить поддомен в сертификат

Можно добавить до сотни доменов и поддоменов в существующий сертификат.

Это полезно, если вы забыли добавить поддомен www.

Поддержка старых клиентов

Если вам критически важна поддержка старых клиентов без SNI (напр. IE в WinXP, устаревшие версии Java и Python), то стоит зафиксировать список доменов для сертификата .

В этом случае получение сертификатов происходит без явного указания доменов.

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

Потому лучше без него.

Создание виртуального хоста с поддержкой ssl

Далее необходимо либо создать новый виртуальный хост apache, либо отредактировать существующий в файле /etc/httpd/conf/httpd.conf. Добавляем в конец файла:

<VirtualHost *:443>
 SSLEngine on
 SSLCertificateFile /root/cert/zeroxzed.ru.crt
 SSLCertificateKeyFile /root/cert/zeroxzed.ru.kye
 <Directory /var/www/vhosts/zeroxzed.ru/www>
 AllowOverride All
 </Directory>
 DocumentRoot /var/www/vhosts/zeroxzed.ru/www
 ServerName zeroxzed.ru
 </VirtualHost>

После сохранения проверяем конфигурацию apache:

# httpd -t

Если появляется предупреждение:

 _default_ VirtualHost overlap on port 443, the first has precedence

То ищем в /etc/httpd/conf/httpd.conf строчку NameVirtualHost *:80 и добавляем после нее NameVirtualHost *:443

Снова проверяем. Если ошибок нет, перезапускаем апач и заходим на сайт, прописав в адресной строке https, вместо http. Теперь ваш сайт доступен по протоколу https. Но пользователи сайта могут об этом не знать. Было бы разумным сделать переадресацию с открытого протокола на защищенный. Сделаем это.

Порядок действий

Шаг 1 — Установка зависимостей

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

sudo apt-get update

Для того, чтобы получить ПО Let’s Encrypt, нам понадобится Git (популярная система контроля версий). Для его установки выполните следующую команду:

sudo apt-get install git 

Шаг 2 — Установка клиента Let’s Encrypt

На данном шаге мы скачаем клиент Let’s Encrypt из официального репозитория проекта и поместим его файлы в специальной директории на сервере. Мы делаем это через Git, чтобы облегчить обновление, когда они станут доступны (поскольку клиент Let’s Encrypt все еще находится в бета-версии, возможны обновления для исправления ошибок и добавления новых функциональных возможностей).

Для наших целей мы создадим папку в каталоге /opt. Это стандартный каталог для размещения программного обеспечения сторонних производителей:

mkdir /opt

Чтобы создать локальную копию клиента Let’s Encrypt, выполним:

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Шаг 3 — Установка SSL-сертификата

Получить сертификат SSL для Apache с помощью Let’s Encrypt очень просто. Клиент автоматически сгенерирует и установит новый сертификат SSL, который действителен для доменов, переданных в качестве параметров.

Перейдем в каталог letsencrypt:

cd /opt/letsencrypt

Чтобы выполнить интерактивную установку и получить сертификат, действительный только для одного домена, выполните команду letsencrypt-auto со следующими параметрами:

./letsencrypt-auto --apache -d example.com

Если вы хотите установить один сертификат, действительный для нескольких доменов или субдоменов (это может понадобиться в случае, если вы разместили на VDS несколько сайтов, при этом используете один и тот же IP-адрес, добавить который вы можете, следуя этой инструкции: http://timeweb.com/ru/help/pages/viewpage.action?pageId=4358224; или если ваш сайт доступен и с префиксом www и без него), вы можете передать их в качестве дополнительных параметров команды. Первое передаваемое доменное имя будет использоваться Let’s Encrypt в качестве базового, по этой причине мы рекомендуем передать первым доменное имя верхнего уровня, а затем список любых дополнительных поддоменов или псевдонимов:

./letsencrypt-auto --apache -d example.com -d www.example.com

В этом примере базовым доменом будет example.com.

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

Шаг 4 — Настройка  автопродления

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

Чтобы в автоматическом режиме обновить все установленные сертификаты, необходимо использовать команду:

letsencrypt renew

Чтобы автоматизировать процесс продления, мы добавим задание в cron (прочитать, как это сделать, можно в этом разделе: http://timeweb.com/ru/support/faq/hosting/technical/kak-mozhno-zapuskat-zadachi-vypolnyat-skripty-po-raspisaniyu-na-khostinge-timeweb/). Для редактирования crontab для root пользователя выполните следующую команду:

sudo crontab -e

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

30 2 * * 1 /opt/letsencrypt/letsencrypt renew >> /var/log/letsencrypt-renew.log

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

Это создаст новое задание, которое будет пытаться обновить сертификаты, у которых осталось менее 30 дней до истечения каждый понедельник в 2:30 утра. Вся информация, генерируемая командой, будет сохраняться в лог-файле, доступном по пути /var/log/letsencrypt-renew.log.

Шаг 5 — Обновление клиента Let’s Encrypt (необязательно)

Всякий раз, когда новые обновления Let’s Encrypt будут доступны, вы можете обновить локальную копию, запустив git pull в каталоге Let’s Encrypt:

св /opt/letsencrypt
sudo git pull

Это позволит загрузить все последние изменения клиента на ваш сервер.

Мнения экспертов

По мнению Филиппа Кулина, запретить протокол DNS over TLS теоретически возможно – для этого нужно заблокировать соединения с портом «853». А вот в случае с протоколом DNS over HTTPS трафик данного протокола сложно отличить от стороннего трафика. Решить проблему можно будет лишь блокировкой основных серверов DoH, поддерживаемых Google, Cisco и CloudFlare.

От больших данных к озеру данных: почему складировать все в одно мега-хранилище — не лучший вариант
Интеграция

Дмитрий Артимович полагает, что запрет DoT может реализовать только интеллектуальный фаервол, который сможет отличать обычный запрос к DNS от шифрованного. Аналогичная история и с запретом ESNI. Но если блокировка ESNI будет налажена, это приведет к недоступности большого числа сайтов.

Wildcard

С марта 2018 года появилась возможность получить бесплатный сертификат на все поддомены, например, mail.dmosk.ru, test.dmosk.ru, admin.dmosk.ru (*.dmosk.ru).

Особенности получения Wildcard от Let’s Encrypt:

  1. Подтвердить право использования доменом можно только с помощью DNS — таким образом, затрудняется процесс автоматического продления. Нужно использовать плагины, которые позволяют автоматически создавать нужную запись на DNS, но они доступны далеко не для всех поставщиков услуг DNS. В противном случае, обновлять Wildcard нужно вручную.
    Также, некоторые панели управления хостингом, например ISP Manager с версии 5 могут управлять процессом получения Wildcard от Let’s Encrypt с возможностью автоматического продления (но необходимо, чтобы домен обслуживался на данном хостинге).
  2. Время действия сертификата также ограничено 3 месяцами.

Certbot

Необходимо, чтобы версия утилиты certbot была 0.22.0 и выше. Проверить текущую версию можно командой:

certbot —version

… если версия ниже, обновляем ее командами:

а) для CentOS / Red Hat:

yum update certbot

б) для Ubuntu / Debian: 

apt-get install —only-upgrade certbot

Процесс получения

Процесс очень похож на процесс получения сертификата с подтверждением домена в DNS.

Вводим команду:

* обратим внимание на 2 детали: 1) мы добавили опцию server, чтобы указать, на каком сервере Let’s Encrypt должна проходить проверка DNS; 2) мы получаем сертификат как для *.dmosk.ru, так и самого dmosk.ru, так как первое не включает второго. ..

система попросит создать TXT-запись в DNS, который обслуживает наш домен:

… система попросит создать TXT-запись в DNS, который обслуживает наш домен:

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Please deploy a DNS TXT record under the name
_acme-challenge.dmosk.ru with the following value:
DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI
Before continuing, verify the record is deployed.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

* в данном примере система попросила создать TXT-запись _acme-challenge.dmosk.ru со значением DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI.

Заходим в панель управления DNS и создаем нужную запись. Если у нас свой сервер DNS, например, bind, то строка будет такой:

; TXT
_acme-challenge IN      TXT     DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI

Не торопимся нажимать Enter — после настройки DNS нужно немного времени (пару минут), чтобы настройка применилась. Проверить появление записи можно командой с рабочего компьютера:

nslookup -type=txt _acme-challenge.dmosk.ru 8.8.8.8

Как только видим, что настройки применились, нажимаем Enter — если это наш первый запрос Wildcard для данного домена, то система нас попросит создать еще одну запись — повторяем процедуру, создав в DNS вторую запись TXT.

Если все сделали правильно, то увидим:

IMPORTANT NOTES:
 — Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/dmosk.ru/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/dmosk.ru/privkey.pem
   Your cert will expire on 2019-09-05. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   «certbot renew»
 — If you like Certbot, please consider supporting our work by:
   Donating to ISRG / Let’s Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

… сертификат получен.

Что такое SSL-сертификат и зачем он нужен?

SSL-сертификат (TLS-сертификат) — это специальный цифровой документ, который связывает между собой криптографический ключ и информацию о сайте, для которого он был выпущен. Наличие SSL-сертификата, выпущенного доверенным центром сертификации является обязательным условием для установления безопасного соединения между сервером и клиентами по протоколу HTTPS.

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

К счастью, на текущий момент, благодаря Let’s Encrypt, у владельцев сайтов появилась возможность совершенно и автоматически выпускать SSL-сертификат для своего сайта и перейти на использование защищенного протокола HTTPS.

Let’s Encrypt — некоммерческий центр сертификации, у которого можно получить бесплатный SSL‑сертификат сроком действия в 90 дней. Для получения такого сертификата необходимо подтвердить факт владения доменом с использованием протокола аутентификации ACME (Automated Certificate Management Environment), согласно которому к веб-серверу, запросившему выпуск сертификата, производится серия запросов для валидации домена. После выполнения этой процедуры клиенту выдается SSL-сертификат и приватный ключ, которые необходимо передать своему веб-серверу для перехода на работу по протоколу HTTPS.

Мы подготовили простые инструкции, которые позволят вам выпустить бесплатный SSL-сертификат и настроить его автоматическое обновления для веб-серверов Nginx, Apache и панели управления VestaCP, в зависимости от того, что вы используете на своем виртуальном сервере.

Выпуск и настройка сертификата для панели управления VestaCP

Поддержка Let’s Encrypt доступна в VestaCP из коробки.

Обратите внимание!
Перед выпуском SSL сертификата LE убедитесь, что у добавляемого домена и поддомена www установлена корректная A-запись. A-запись должна указывать на IP-адрес текущего VPS сервера

Изменить A-запись можно в разделе DNS вашей панели управления.

Для выпуска и установки сертификата вы можете отметить дополнительные опции сразу при добавлении домена в разделе WEB панели VestaCP:

Или отредактировать настройки домена в разделе WEB, выбрав опции поддержки SSL уже после добавления:

Выпуск и автоматическая установка сертификата занимают до 5 минут. После этого данные SSL-сертификата будут доступны также в настройках домена.

Помимо этого, добавляется cron-задание для автоматического обновления сертификатов, истекающих через 30 и менее дней. Проверить это можно в разделе CRON панели VestaCP:

Error: Let’s Encrypt validation status 400

  • Убедитесь, что ваше доменное имя было введено правильно.
  • При использовании АААА записей убедитесь, что в DNS присутствуют также записи типа А.
  • Убедитесь, что записи DNS типа A для этого домена и www-поддомена содержат правильный IP-адрес (адрес текущего VPS сервера).
  • Убедитесь, что в конфигурационном файле NGINX отсутствует 301-й редирект на HTTPS (для выпуска или перевыпуска сертификата домен должен быть доступен по HTTP).

Error: LetsEncrypt challenge request 429

  • Попробуйте удалить домен из панели VestaCP и добавить его снова, после чего повторить попытку выпуска сертификата.
  • Повторите попытку выпуска сертификата через 1 час.

Как скрыть сайты и трафик от провайдера?

Рассмотрим более сложный случай: вы используете VPN. В этом варианте провайдер видит шифрованный трафик, отправленный на конкретный IP. По IP-адресу можно узнать многое, в том числе вычислить весь диапазон адресов, отданных под виртуальные сервера. Дальнейшее же направление передаваемых данных отследить на оборудовании провайдера невозможно, только если не устраивать целенаправленную слежку за абонентом, сопоставляя трафик пользователя с трафиком сервера. Однако, даже слежка требуется не всегда, так как операционная система может вас внезапно «подставить». Когда VPN произвольно отключается, интернет-трафик начинает идти «напрямую» в открытом виде, и тогда провайдер тут же видит ваш реальный IP. Во избежание этого рекомендуется использовать VPN-клиенты со встроенной функцией Kill Switch либо дополнительно настраивать прерывание интернет-соединения при потере связи с впн-сервером.

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

Напоследок разберем еще один сложный вариант: вы используете TOR. В этом случае провайдер не увидит адрес сайта, на который вы заходите. Он получит лишь IP-адрес, с которого идут потоки данных, при чем этот адрес меняется на новый автоматически. На сегодня нет технологии расшифровки TOR-трафика, но уже существуют системы его точного обнаружения. Использование TOR само по себе считается подозрительным действием, и этот факт, зафиксированный у провайдера в логах, может стать основанием для более тщательного наблюдения за пользователем.

Не то чтобы мы рекомендовали вам поддаваться излишней паранойе: провайдер может следить за вами, но маловероятно, что он это сделает по своему желанию. Да, операторы сотрудничают с «органами», да, операторы записывают логи, но до того момента, пока вы действительно не совершите противоправные действия в Интернете, никто не будет за вами наблюдать. Это, как правило, никому не нужно, плюс требует больших денежных затрат. Из логов оперативно высчитывается только то, что для операторов коммерчески выгодно: например, данные о том, что вы часто заходите на сайт другого провайдера. Попробуйте это сделать, и, возможно, уже на следующий день ваш оператор связи позвонит и поинтересуется, довольны ли вы их сервисом.

Ну а чтобы быть абсолютно уверенным в том, что провайдер не узнает о вашем серфинге по Сети ровным счетом ничего, мы рекомендуем вам выходить в интернет только с впн-подключением. Включенный vpn-клиент надежно шифрует входящий и исходящий трафик, а соединение через впн-сервер скрывает от провайдера ресурсы, на которые вы заходили во время интернет-сессии.

Шаг 1 — Установка Certbot

Перед началом использования Let’s Encrypt для получения SSL сертификаты установим Certbot на ваш сервер.

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

Сначала добавим репозиторий:

Далее нажмите .

Установим пакет Certbot для Apache с помощью :

Теперь Certbot готов к использованию, но для того, чтобы он мог настроить SSL для Apache, нам сперва необходимо проверить кое-какие настройки Apache.

Как отслеживают торренты

Торрент-клиент и трекер, как правило, обмениваются данными по протоколу HTTP. Это открытый протокол, а значит, смотрите выше: просмотр трафика пользователя с помощью атаки MITM, анализ, расшифровка, блокировка с помощью DPI. Провайдер может исследовать очень много данных: когда стартовало или завершилось скачивание, когда стартовала раздача, какое количество трафика было роздано.

Сидеров найти труднее. Чаще всего в таких случаях специалисты сами становятся пирами. Зная IP-адрес сидера, пир может направить провайдеру уведомление с именем раздачи, её адресом, временем начала раздачи, собственно, IP-адресом сидера и т.д.

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

Шаг 1 – Создание сертификата SSL

Протоколы TLS и SSL используют сочетание открытого сертификата и закрытого ключа. Секретный ключ SSL хранится на сервере. Он используется для шифрования отправляемых на клиентские системы данных. Сертификат SSL находится в открытом доступе для всех, кто запрашивает этот контент. Его можно использовать для расшифровки контента, подписанного соответствующим ключом SSL.

Мы можем создать самоподписанный ключ и пару сертификатов OpenSSL с помощью одной команды:

Вам будет предложено ответить на ряд вопросов. Прежде чем перейти к этому шагу, посмотрим, что делает отправляемая нами команда:

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

Как мы указывали выше, эти опции создают и файл ключа, и сертификат. Нам будет задано несколько вопросов о нашем сервере, чтобы правильно вставить информацию в сертификат.

Укажите подходящие ответы. Самая важная строка — это строка, где запрашивается . Вам нужно ввести доменное имя, связанное с вашим сервером или, что более вероятно, публичный IP-адрес вашего сервера.

В целом диалоги выглядят примерно так:

Оба созданных вами файла будут помещены в соответствующие подкаталоги в каталоге .

Получаем сертификат от Let’s Encrypt

Итак, я считаю, что вы настроили почтовый сервер по предложенной выше ссылке. Значит, у вас установлен веб сервер Apache, а так же все в порядке с dns записями. Сертификатов мы получим сразу два. Для доменных имен:

  • mail.site.ru — имя почтового сервера, этот сертификат будут использовать postfix и apache
  • webmail.site.ru — домен для web интерфейса почты, будет использовать веб сервер

Для настройки получения сертификатов let’s encrypt и настройки apache, нам нужно будет установить несколько пакетов. Напоминаю, что речь идет про Centos 8. В других системах настройка будет аналогичной, только имена пакетов могут отличаться.

# dnf install certbot python3-certbot-apache mod_ssl

Пакеты эти живут в репозитории epel, так что если он еще не подключен, подключите.

# dnf install epel-release

Дальше нам нужно добавить 2 виртуальных домена в настройки apache. Для этого создаем 2 конфига в директории /etc/httpd/conf.d/.

1. mail.site.ru.conf

<VirtualHost *:443>
 ServerName mail.site.ru
 DocumentRoot /var/www/mail.site.ru/
 <Directory /var/www/mail.site.ru/>
  Options -Indexes +FollowSymLinks
  AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/mail.site.ru-error.log
 CustomLog /var/log/httpd/mail.site.ru-access.log combined
</VirtualHost>

<VirtualHost *:80>
 ServerName mail.site.ru
 DocumentRoot /var/www/mail.site.ru/
 <Directory /var/www/mail.site.ru/>
  Options -Indexes +FollowSymLinks
  AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/mail.site.ru-error.log
 CustomLog /var/log/httpd/mail.site.ru-access.log combined
</VirtualHost>

2. webmail.site.ru.conf

<VirtualHost *:443>
 ServerName webmail.site.ru
 DocumentRoot /var/www/webmail.site.ru/
 <Directory /var/www/webmail.site.ru/>
  Options -Indexes +FollowSymLinks
  AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/webmail.site.ru-error.log
 CustomLog /var/log/httpd/webmail.site.ru-access.log combined
</VirtualHost>

<VirtualHost *:80>
 ServerName webmail.site.ru
 DocumentRoot /var/www/webmail.site.ru/
 <Directory /var/www/webmail.site.ru/>
  Options -Indexes +FollowSymLinks
  AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/webmail.site.ru-error.log
 CustomLog /var/log/httpd/webmail.site.ru-access.log combined
</VirtualHost>

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

# apachectl -t
# apachectl reload

Если увидите ошибку:

AH00526: Syntax error on line 85 of /etc/httpd/conf.d/ssl.conf:
SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty

Просто удалите конфиг /etc/httpd/conf.d/ssl.conf. Он нам не нужен.

Если нет ошибок, то можно запускать certbot и получать сертификаты. Делается это очень просто.

# certbot --apache

Если все прошло без ошибок, то вы увидите в директории /etc/letsencrypt/live две папки с сертификатами для каждого из доменов.

Так же certbot автоматически добавит в конфигурации виртуальных хостов apache несколько дополнительных параметров.

<VirtualHost *:443>
 ServerName webmail.site.ru
 DocumentRoot /var/www/webmail.site.ru/
 <Directory /var/www/webmail.site.ru/>
  Options -Indexes +FollowSymLinks
  AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/webmail.site.ru-error.log
 CustomLog /var/log/httpd/webmail.site.ru-access.log combined
 SSLCertificateFile /etc/letsencrypt/live/mail.site.ru/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/mail.site.ru/privkey.pem
 Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

<VirtualHost *:80>
 ServerName webmail.site.ru
 DocumentRoot /var/www/webmail.site.ru/
 <Directory /var/www/webmail.site.ru/>
  Options -Indexes +FollowSymLinks
  AllowOverride All
 </Directory>
 ErrorLog /var/log/httpd/webmail.site.ru-error.log
 CustomLog /var/log/httpd/webmail.site.ru-access.log combined
 RewriteEngine on
 RewriteCond %{SERVER_NAME} =mail.site.ru
 RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} 
</VirtualHost>

В этот виртуальный хост установите веб почту, если вам она нужна.

Выводы

В этом руководстве вы использовали клиентского certbot Let’s Encrypt для загрузки сертификатов SSL для вашего домена. Вы также создали фрагменты Apache, чтобы избежать дублирования кода, и настроили Apache для использования сертификатов. В конце руководства вы настроили cronjob для автоматического продления сертификата.

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

Этот пост является частью серии статей о том, как установить LAMP стек на Ubuntu 18.04. Другие сообщения из этой серии:

  • Как установить Apache в Ubuntu 18.04
  • Как настроить виртуальные хосты Apache в Ubuntu 18.04
  • Как установить MySQL в Ubuntu 18.04
  • Как установить PHP в Ubuntu 18.04
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: