Настраиваем Apache + SSL для работы по HTTPS с сертификатами Let’s Encrypt
Здравствуйте, уважаемые подписчики и читатели!
Начнем мы с наиболее популярного веб-сервера Apache, первоначальная настройка которого выполнена по нашей статье: Настраиваем веб-сервер на базе Apache в Debian / Ubuntu Server. В данной статье будет использоваться Apache 2.4 установленный в среде Debian 10, но все сказанное ниже будет справедливо для любого основанного на Debian или Ubuntu дистрибутива, а с некоторыми поправками – для любой Linux системы.
Будем считать, что у нас уже настроен как минимум один виртуальный хост, на котором работает сайт, допустим, example.com, минимальная конфигурация виртуального хоста должна выглядеть примерно так:
<VirtualHost *:80>
ServerName example.com
ServerAdmin mail@example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
<Directory /var/www/example.com>
Options -Includes -Indexes -ExecCGI
AllowOverride All
</Directory>
</VirtualHost>
Options -Includes -Indexes -ExecCGI
AllowOverride All
</Directory>
</VirtualHost>
Мы не будем подробно описывать значение опций, это сделано в указанной нами статье, а конфигурация приведена для примера, на который мы будем опираться в дальнейшем по ходу статьи.
Прежде всего нам потребуется настроить веб-сервер для работы с Let’s Encrypt, сделав так, чтобы сертификаты можно было легко получать для любого обслуживаемого сервером сайта без дополнительных настроек. Создадим для этого специальную директорию:
mkdir /var/www/letsencrypt
И сделаем ее владельцем веб сервер:
chown -R www-data:www-data /var/www/letsencrypt
Затем создадим файл конфигурации для Аpache:
touch /etc/apache2/conf-available/le.conf
и внесем в него следующий текст:
Alias /.well-known/acme-challenge/ /var/www/letsencrypt/.well-known/acme-challenge/
<Directory "/var/www/letsencrypt/.well-known/acme-challenge/">
Options None
AllowOverride None
ForceType text/plain
Require all granted
RedirectMatch 404 "^(?!/\.well-known/acme-challenge/[\w-]{43}$)"
</Directory>
Эта настройка будет перенаправлять все запросы к /.well-known/acme-challenge любого сайта в созданную нами директорию /var/www/letsencrypt.
Подключим конфигурационный файл:
a2enconf le
и проверим конфигурацию на ошибки:
apachectl -t
Затем перезапустим веб-сервер
service apache2 restart
Следующим шагом установим certbot, в современных дистрибутивах он включен в репозитории, поэтому достаточно выполнить:
apt install certbot