SCROLL
Среднее время на прочтение: 2 мин.

Настройка SSL-сертификата Lets Encrypt с использованием Certbot и Apache в Debian Linux

В данной статье мы рассмотрим пошаговый процесс получения, установки и автоматического обновления SSL-сертификата Let’s Encrypt для домена с использованием Certbot и веб-сервера Apache на Debian Linux.

Рассмотрим получение SSL-сертификата с использованием метода webroot для подтверждения владения доменом. Это делается с помощью флага --webroot, который указывает путь к корневому каталогу веб-сервера.

Для выпуска сертификата необходим установленный и настроенный Apache с корректными виртуальным хостом и DNS-записями. На примере ниже будем рассматривать выпуск сертификата для домена — example.com.

Подготовка к выпуску сертификата

JUQwJUEzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwQ2VydGJvdCUzQQ==

YXB0LWdldCUyMGluc3RhbGwlMjBjZXJ0Ym90JTIwLXk=

JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI0JUQwJUI4JUQxJTgwJUQwJUI1JUQwJUJBJUQxJTgyJUQwJUJFJUQxJTgwJUQwJUI4JUQxJThFJTIwJTJGdmFyJTJGd3d3JTJGbGV0c2VuY3J5cHQlMkMlMjAlRDAlQkElRDAlQkUlRDElODIlRDAlQkUlRDElODAlRDAlQjAlRDElOEYlMjAlRDAlQjElRDElODMlRDAlQjQlRDAlQjUlRDElODIlMjAlRDAlQjglRDElODElRDAlQkYlRDAlQkUlRDAlQkIlRDElOEMlRDAlQjclRDAlQkUlRDAlQjIlRDAlQjAlRDElODIlRDElOEMlRDElODElRDElOEYlMjAlRDAlQjQlRDAlQkIlRDElOEYlMjAlRDAlQkYlRDElODAlRDAlQkUlRDAlQjIlRDAlQjUlRDElODAlRDAlQkElRDAlQjglMjAlRDAlQjIlRDAlQkIlRDAlQjAlRDAlQjQlRDAlQjUlRDAlQkQlRDAlQjglRDElOEYlMjAlRDAlQjQlRDAlQkUlRDAlQkMlRDAlQjUlRDAlQkQlRDAlQkUlRDAlQkMlMjAlRDAlQjglMjAlRDAlQkQlRDAlQjAlRDAlQjclRDAlQkQlRDAlQjAlRDElODclRDAlQjAlRDAlQjUlRDAlQkMlMjAlRDAlQjUlRDAlQjklMjAlRDElODElRDAlQkUlRDAlQkUlRDElODIlRDAlQjIlRDAlQjUlRDElODIlRDElODElRDElODIlRDAlQjIlRDElODMlRDElOEUlRDElODklRDAlQjglRDAlQjUlMjAlRDAlQkYlRDElODAlRDAlQjAlRDAlQjIlRDAlQjAlM0E=

bWtkaXIlMjAtcCUyMCUyRnZhciUyRnd3dyUyRmxldHNlbmNyeXB0
chown www-data:www-data /var/www/letsencrypt

Certbot использует протокол ACME для проверки владения доменом. Для этого необходимо настроить доступ к специальной директории .well-known/acme-challenge. Создаем конфигурацию /etc/apache2/conf-available/letsencrypt.conf со следующим содержимым:

/etc/apache2/conf-available/letsencrypt.conf
Alias /.well-known/acme-challenge/ /var/www/letsencrypt/.well-known/acme-challenge/

<Directory "/var/www/letsencrypt/.well-known/acme-challenge/">
JTIwJTIwJTIwJTIwT3B0aW9ucyUyME5vbmU=
    AllowOverride None
    ForceType text/plain
JTIwJTIwJTIwJTIwT3JkZXIlMjBhbGxvdyUyQ2Rlbnk=
JTIwJTIwJTIwJTIwQWxsb3clMjBmcm9tJTIwYWxs
    RedirectMatch 404 "^(?!/\.well-known/acme-challenge/[\w-]{43}$)"
JTNDJTJGRGlyZWN0b3J5JTNF
Строка RedirectMatch 404 разрешает доступ только к файлам, соответствующим шаблону ACME challenge (ровно 43 символа после пути /.well-known/acme-challenge/), тем самым защищает директорию от несанкционированного доступа к другим файлам.

Дополнительно

JUQwJTk1JUQxJTgxJUQwJUJCJUQwJUI4JTIwJUQwJUIyJUQwJUIwJUQxJTg4JTIwJUQwJUIyJUQwJUI4JUQxJTgwJUQxJTgyJUQxJTgzJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTg1JUQwJUJFJUQxJTgxJUQxJTgyJTIwJUQxJTgzJUQwJUI2JUQwJUI1JTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI1JUQwJUJEJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQxJThGJTIwU1NMJTIwJUQwJUI4JTIwJUQwJUJGJUQxJTgwJUQwJUI4JTIwJUQwJUJFJUQwJUIxJUQxJTgwJUQwJUIwJUQxJTg5JUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI4JTIwJUQwJUJBJTIwaHR0cCUzQSUyRiUyRmV4YW1wbGUuY29tJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUI4JUQxJTgxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQxJTgyJTIwJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUI4JUQxJTgwJUQwJUI1JUQwJUJBJUQxJTgyJTIwJUQwJUJEJUQwJUIwJTIwaHR0cHMlM0ElMkYlMkZleGFtcGxlLmNvbSUyQyUyMCVEMSU4MiVEMCVCRSUyMCVEMCVCRCVEMSU4MyVEMCVCNiVEMCVCRCVEMCVCRSUyMCVEMSU4MyVEMCVCMSVEMCVCNSVEMCVCNCVEMCVCOCVEMSU4MiVEMSU4QyVEMSU4MSVEMSU4RiUyQyUyMCVEMSU4NyVEMSU4MiVEMCVCRSUyMCVEMCVCRSVEMCVCRiVEMSU4MCVEMCVCNSVEMCVCNCVEMCVCNSVEMCVCQiVEMSU5MSVEMCVCRCVEMCVCRCVEMSU4QiVEMCVCNSUyMCVEMCVCRiVEMSU4MyVEMSU4MiVEMCVCOCUyQyUyMCVEMSU4MiVEMCVCMCVEMCVCQSVEMCVCOCVEMCVCNSUyMCVEMCVCQSVEMCVCMCVEMCVCQSUyMCVEMCVCRiVEMSU4MyVEMSU4MiVEMSU4QyUyMCVEMCVCNCVEMCVCQiVEMSU4RiUyMEFDTUUlMjBDaGFsbGVuZ2UlMkMlMjAlRDAlQkQlRDAlQjUlMjAlRDAlQkYlRDAlQjUlRDElODAlRDAlQjUlRDAlQkQlRDAlQjAlRDAlQkYlRDElODAlRDAlQjAlRDAlQjIlRDAlQkIlRDElOEYlRDElOEUlRDElODIlRDElODElRDElOEYuJTIwJUQwJUFEJUQxJTgyJUQwJUJFJTIwJUQwJUJEJUQwJUI1JUQwJUJFJUQwJUIxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJUQwJUJFJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQxJTgzJUQxJTgxJUQwJUJGJUQwJUI1JUQxJTg4JUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTg1JUQwJUJFJUQwJUI2JUQwJUI0JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUJBJUQwJUI4JTIwJUQwJUI0JUQwJUJFJUQwJUJDJUQwJUI1JUQwJUJEJUQwJUIwLg==

JUQwJUE3JUQxJTgyJUQwJUJFJUQwJUIxJUQxJThCJTIwJUQxJTgwJUQwJUI1JUQwJUIwJUQwJUJCJUQwJUI4JUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQxJThEJUQxJTgyJUQwJUJFJTJDJTIwJUQwJUI4JUQwJUI3JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI4JUQxJTgyJUQwJUI1JTIwJUQwJUI4JUQwJUJCJUQwJUI4JTIwJUQwJUI0JUQwJUJFJUQwJUIxJUQwJUIwJUQwJUIyJUQxJThDJUQxJTgyJUQwJUI1JTIwJUQxJTgzJUQwJUJBJUQwJUIwJUQwJUI3JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQwJUJEJUQwJUI4JUQwJUI2JUQwJUI1JTIwJUQwJUIxJUQwJUJCJUQwJUJFJUQwJUJBJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTIwJUQwJUIyJTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI5JUQwJUJBJUQwJUI4JTIwJUQwJUIyJUQwJUIwJUQxJTg4JUQwJUI1JUQwJUIzJUQwJUJFJTIwJUQwJUIyJUQwJUI4JUQxJTgwJUQxJTgyJUQxJTgzJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTg1JUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJTIwJUQwJUIyJTIwQXBhY2hlJTNB

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    RewriteEngine On
JTIwJTIwJTIwJTIwUmV3cml0ZUNvbmQlMjAlMjUlN0JSRVFVRVNUX1VSSSU3RCUyMCElNUUlMkYud2VsbC1rbm93biUyRmFjbWUtY2hhbGxlbmdlJTJG
    RewriteRule ^/(.*)$ https://example.com/$1 [R=301,L]
JTNDJTJGVmlydHVhbEhvc3QlM0U=
Если модуль rewrite не включен в вашем Apache, вы можете включить его командой — a2enmod rewrite && systemctl restart apache2

Тестовый запуск Certbot

JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI0JTIwJUQwJUIyJUQxJThCJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUJFJUQwJUJDJTIwJUQxJTgwJUQwJUI1JUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJTIwJUQxJTgwJUQwJUI1JUQwJUJBJUQwJUJFJUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI0JUQxJTgzJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQxJTgyJUQwJUI1JUQxJTgxJUQxJTgyJUQwJUJFJUQwJUIyJUQxJThCJUQwJUI5JTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJTJDJTIwJUQxJTg3JUQxJTgyJUQwJUJFJUQwJUIxJUQxJThCJTIwJUQxJTgzJUQwJUIxJUQwJUI1JUQwJUI0JUQwJUI4JUQxJTgyJUQxJThDJUQxJTgxJUQxJThGJTJDJTIwJUQxJTg3JUQxJTgyJUQwJUJFJTIwJUQwJUIyJUQxJTgxJUQwJUI1JTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI1JUQwJUJEJUQwJUJFJTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUI4JUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFLiUyMCVEMCU5OCVEMSU4MSVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCNyVEMSU4MyVEMCVCOSVEMSU4MiVEMCVCNSUyMCVEMCVCQSVEMCVCRSVEMCVCQyVEMCVCMCVEMCVCRCVEMCVCNCVEMSU4MyUzQQ==

Y2VydGJvdCUyMGNlcnRvbmx5JTIwLS1kcnktcnVuJTIwLS13ZWJyb290JTIwLXclMjAlMkZ2YXIlMkZ3d3clMkZsZXRzZW5jcnlwdCUyMC1kJTIwZXhhbXBsZS5jb20lMjAtZCUyMHd3dy5leGFtcGxlLmNvbQ==

JUQwJTlGJUQwJUIwJUQxJTgwJUQwJUIwJUQwJUJDJUQwJUI1JUQxJTgyJUQxJTgwJUQxJThCJTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQxJThCJTNB

  • --dry-run: выполняет тестовый запуск без выпуска реального сертификата.
  • --webroot: указывает метод проверки владения доменом через веб-сервер.
  • -w /var/www/letsencrypt: указывает путь к директории, где certbot будет размещать файлы проверки.
  • -d example.com -d www.example.com: список доменов, для которых выпускается сертификат.

Если тест прошел успешно, вы увидите сообщение об успешной проверке. Если возникли ошибки, проверьте:

  • Настройки DNS для доменов.
  • Доступность директории /var/www/letsencrypt.
  • Конфигурацию Apache.

Выпуск реального сертификата

После успешного тестового запуска можно получить реальный сертификат. Используйте команду:

Y2VydGJvdCUyMGNlcnRvbmx5JTIwLS1hZ3JlZS10b3MlMjAtLWVtYWlsJTIwYWRtaW4lNDBqYWtvbmRvLnJ1JTIwLS13ZWJyb290JTIwLXclMjAlMkZ2YXIlMkZ3d3clMkZsZXRzZW5jcnlwdCUyMC1kJTIwZXhhbXBsZS5jb20lMjAtZCUyMHd3dy5leGFtcGxlLmNvbQ==

JUQwJTk0JUQwJUJFJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQxJTgyJUQwJUI1JUQwJUJCJUQxJThDJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUJGJUQwJUIwJUQxJTgwJUQwJUIwJUQwJUJDJUQwJUI1JUQxJTgyJUQxJTgwJUQxJThCJTNB

  • --agree-tos: автоматически соглашается с условиями использования Let’s Encrypt.
  • --email admin@example.com: указывает контактный email для уведомлений (например, о необходимости обновления сертификата).

JUQwJTlGJUQwJUJFJUQxJTgxJUQwJUJCJUQwJUI1JTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQxJThCJTIwY2VydGJvdCUzQQ==

  1. Создаст файлы проверки в директории /var/www/letsencrypt/.well-known/acme-challenge/.
  2. Пройдет проверку владения доменом.
  3. Сохранит сертификаты в директорию /etc/letsencrypt/live/example.com/.

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

JUQwJUExJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQxJThCJTIwTGV0JUUyJTgwJTk5cyUyMEVuY3J5cHQlMjAlRDAlQjQlRDAlQjUlRDAlQjklRDElODElRDElODIlRDAlQjIlRDAlQjglRDElODIlRDAlQjUlRDAlQkIlRDElOEMlRDAlQkQlRDElOEIlMjA5MCUyMCVEMCVCNCVEMCVCRCVEMCVCNSVEMCVCOSUyQyUyMCVEMCVCRiVEMCVCRSVEMSU4RCVEMSU4MiVEMCVCRSVEMCVCQyVEMSU4MyUyMCVEMCVCMiVEMCVCMCVEMCVCNiVEMCVCRCVEMCVCRSUyMCVEMCVCRCVEMCVCMCVEMSU4MSVEMSU4MiVEMSU4MCVEMCVCRSVEMCVCOCVEMSU4MiVEMSU4QyUyMCVEMCVCOCVEMSU4NSUyMCVEMCVCMCVEMCVCMiVEMSU4MiVEMCVCRSVEMCVCQyVEMCVCMCVEMSU4MiVEMCVCOCVEMSU4NyVEMCVCNSVEMSU4MSVEMCVCQSVEMCVCRSVEMCVCNSUyMCVEMCVCRSVEMCVCMSVEMCVCRCVEMCVCRSVEMCVCMiVEMCVCQiVEMCVCNSVEMCVCRCVEMCVCOCVEMCVCNS4=

Настройка хука для обновления

JUQwJTlGJUQxJTgwJUQwJUI4JTIwJUQwJUIyJUQxJThCJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUI1JTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQxJTgyJUQwJUI4JUQxJTg0JUQwJUI4JUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJTIwY2VydGJvdCUyMCVEMSU4MSVEMCVCRSVEMCVCNyVEMCVCNCVEMCVCMCVEMCVCNSVEMSU4MiUyMCVEMSU4NCVEMCVCMCVEMCVCOSVEMCVCQiUyMCVEMCVCQSVEMCVCRSVEMCVCRCVEMSU4NCVEMCVCOCVEMCVCMyVEMSU4MyVEMSU4MCVEMCVCMCVEMSU4NiVEMCVCOCVEMCVCOCUyMCVEMCVCRSVEMCVCMSVEMCVCRCVEMCVCRSVEMCVCMiVEMCVCQiVEMCVCNSVEMCVCRCVEMCVCOCVEMSU4RiUyMCVEMCVCMiUyMCVEMCVCQSVEMCVCMCVEMSU4MiVEMCVCMCVEMCVCQiVEMCVCRSVEMCVCMyVEMCVCNSUyMCUyRmV0YyUyRmxldHNlbmNyeXB0JTJGcmVuZXdhbCUyRi4lMjAlRDAlQTclRDElODIlRDAlQkUlRDAlQjElRDElOEIlMjBBcGFjaGUlMjAlRDAlQkYlRDAlQjUlRDElODAlRDAlQjUlRDElODclRDAlQjglRDElODIlRDElOEIlRDAlQjIlRDAlQjAlRDAlQkIlMjAlRDAlQkElRDAlQkUlRDAlQkQlRDElODQlRDAlQjglRDAlQjMlRDElODMlRDElODAlRDAlQjAlRDElODYlRDAlQjglRDElOEUlMjAlRDAlQkYlRDAlQkUlRDElODElRDAlQkIlRDAlQjUlMjAlRDAlQkUlRDAlQjElRDAlQkQlRDAlQkUlRDAlQjIlRDAlQkIlRDAlQjUlRDAlQkQlRDAlQjglRDElOEYlMjAlRDElODElRDAlQjUlRDElODAlRDElODIlRDAlQjglRDElODQlRDAlQjglRDAlQkElRDAlQjAlRDElODIlRDAlQjAlMkMlMjAlRDAlQjQlRDAlQkUlRDAlQjElRDAlQjAlRDAlQjIlRDElOEMlRDElODIlRDAlQjUlMjAlRDAlQkYlRDAlQjAlRDElODAlRDAlQjAlRDAlQkMlRDAlQjUlRDElODIlRDElODAlMjByZW5ld19ob29rJTNB

[renewalparams]
...
renew_hook = systemctl reload apache2

Этот параметр указывает, что после успешного обновления сертификата будет выполнен перезапуск apache, чтобы применить изменения.

Проверка обновления

JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUJBJUQwJUI4JTIwJUQxJTgwJUQwJUIwJUQwJUIxJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgxJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJFJUQwJUIxJUQwJUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI4JTIwJUQwJUJFJUQwJUIxJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQxJTgyJUQwJUI1JTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQxJTgzJTNB

Y2VydGJvdCUyMHJlbmV3JTIwLS1kcnktcnVu

Если тест прошел успешно, certbot автоматически обновит сертификаты при необходимости.

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

0 комментариев

Нет комментариев.