TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #5153 11.5K
В одном из обновлений Angie ещё в начале этого года был добавлен модуль с ACME клиентом. Я уже как-то писал о нём мельком сразу после выхода. Он обеспечивает автоматическое получение бесплатных сертификатов Let's Encrypt. Я по старинке использую certbot и иногда acme.sh. Старые сервера перенастраивать не стал, особого смысла нет. А вот для новых имеет смысл попробовать.

✅ Плюсы такого подхода следующие:
➕Не нужно поддерживать список доменов в разных местах. Есть конфигурация Angie с настроенными доменами. Для них же и получаем сертификаты.
➕Обновление сертификатов происходит без перезапуска веб сервера. Для небольших веб серверов не очень актуально, а вот если доменов и поддоменов много, то это заметное улучшение процессов.
➕В целом более простая настройка с минимумом лишних компонентов и конфигураций для них.

Все параметры описаны в документации. Я смотрел только туда. Получилось всё с первого раза, но пара вопросов остались. В конце отмечу их. Покажу итоговый пример для двух доменов: mail.zeroxzed.ru и webmail.zeroxzed.ru. Сделал их для статьи по почтовому серверу, которую пока пишу.

Добавляем в раздел http конфигурации Angie:

http {
....
resolver 62.76.76.62 62.76.62.76;
acme_client webmail https://acme-v02.api.letsencrypt.org/directory;
acme_client mail https://acme-v02.api.letsencrypt.org/directory;
....
}


62.76.76.62 и 62.76.62.76 - публичные DNS сервера компании MSK-IX. Можете использовать любые другие.

Создаём 2 файла конфигурации виртуальных хостов в директории /etc/angie/http.d - mail.conf и webmail.conf. Содержание одинаковое, отличается только поддомен и параметр acme:

server {
  listen 443 ssl;
  server_name webmail.zeroxzed.ru;

  root /var/www/webmail;
  index index.php index.html;

  acme webmail;
  ssl_certificate $acme_cert_webmail;
  ssl_certificate_key $acme_cert_key_webmail;

  access_log /var/log/angie/webmail-access.log;
  error_log /var/log/angie/webmail-error.log;

  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  location ~ \.php$ {
    fastcgi_pass  unix:/run/php/php8.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

server {
  listen 80;
  server_name webmail.zeroxzed.ru;
  return 301 https://$host$request_uri;
}


Перезапускаем веб сервер и наблюдаем в логах:

2025/11/27 17:24:28 [notice] 154580#154580: creating implicit client block for "@acme"
2025/11/27 17:24:28 [notice] 154580#154580: no certificate, renewal scheduled now, ACME client: webmail
.......................
2025/11/27 17:24:31 [notice] 154582#154582: ACME account ID: "https://acme-v02.api.letsencrypt.org/acme/acct/2832575756", ACME client: webmail
2025/11/27 17:24:47 [notice] 154582#154582: certificate renewed, next renewal date: Mon Jan 26 16:26:15 2026, ACME client: webmail


И так для обоих доменов. В директории /var/lib/angie/acme появились две папки mail и webmail, где расположены соответствующие сертификаты.

Не видел нигде примеров конфигурации с несколькими доменами, поэтому не понял, можно ли как-то всё красиво оформить через переменные в ssl_certificate, но с одним acme_client? Или для каждого отдельного домена надо прописывать своего клиента?

Второй момент, который остался непонятен. Он актуален, если эти же сертификаты использует кто-то ещё. Не увидел никакой возможности настроить хуки после обновления сертификатов, чтобы уведомить зависящие от них службы. Придётся какие-то костыли городить, типа incron, что нивелирует простоту изначальной настройки.

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

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#angie
  • 👍 107
  • 👎 5
More from @srv_admin
  1. Sep 28, 2026Компания Microsoft давно анонсировала возврат настройки по управлению размещением панели з…
  2. Sep 28, 2026Сложный, но критически важный процесс: усиление защищенности инфраструктуры. Для него нужн…
  3. Sep 28, 2026Узнал совсем недавно про очень любопытный проект для запуска PHP приложений. Я краем глаза…
  4. Sep 25, 2026▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересны…
  5. Sep 25, 2026Подписчик поделился полезным проектом - Webtop. Это Linux дистрибутив с графикой, упакован…
  6. Sep 24, 2026Траблшутинг - мастхэв компетенция для инженера В Rebrain траблшутинги проводят уже несколь…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →