ACME#
Обеспечивает автоматическое получение сертификатов с использованием протокола ACME.
При сборке из исходного кода модуль не собирается по умолчанию; его необходимо
включить с помощью параметра сборки
Примеры конфигурации и инструкции по настройке см. в разделе Настройка ACME. Для всех доменов, указанных в директивах server_name
во всех блоках server,
которые ссылаются на клиент ACME с именем имя,
будет получен единый сертификат;
если изменится конфигурация При каждом запуске Angie для всех доменов,
у которых отсутствует действующий сертификат, запрашиваются новые сертификаты.
Возможные причины включают истечение срока действия сертификатов,
отсутствие файлов или невозможность прочитать их,
а также изменения в настройках сертификатов. Примечание Сейчас домены, заданные через регулярные выражения,
не поддерживаются и будут пропускаться. Домены со звездочкой поддерживаются только в режиме Эта директива может быть указана несколько раз
для загрузки сертификатов разных типов, например RSA и ECDSA: По умолчанию — http Определяет клиент ACME с глобально уникальным именем.
Оно должно быть допустимым для каталога
и будет использоваться без учета регистра. Вторым обязательным параметром является uri каталога ACME.
Например, URI каталога Let's Encrypt ACME указан
как
https://acme-v02.api.letsencrypt.org/directory. Чтобы директива работала,
в том же контексте должен быть настроен resolver. Примечание Для тестирования
удостоверяющие центры обычно предоставляют отдельные тестовые среды.
Например, среда тестирования Let's Encrypt
—
https://acme-staging-v02.api.letsencrypt.org/directory. Включает или отключает клиент;
это полезно, например, для временного отключения клиента
без его удаления из конфигурации. По умолчанию: Тип алгоритма закрытого ключа для сертификата.
Допустимые значения: По умолчанию: Количество битов в ключе сертификата.
По умолчанию: 256 для Необязательный адрес электронной почты для обратной связи;
используется при создании учетной записи на сервере CA. Задает максимальный допустимый размер файла нового сертификата в байтах,
чтобы зарезервировать место для нового сертификата в разделяемой памяти;
чем больше число доменов, для которых запрашивается сертификат,
тем больше требуется места. Если в момент запуска сертификат уже существует,
но его размер превышает значение Если размер сертификата, полученного при обновлении,
превышает По умолчанию: Время до истечения срока действия сертификата,
когда должно начаться его обновление. По умолчанию: Время до повторной попытки,
если получить сертификат не удалось.
Если задано значение По умолчанию: Задает тип верификации для ACME-клиента.
Допустимые значения: По умолчанию: Указывает полный путь к файлу, содержащему ключ в формате PEM.
Это удобно, если вы хотите использовать существующий ключ аккаунта
вместо автоматической генерации,
или если вам нужно использовать один ключ для нескольких ACME-клиентов. Поддерживаемые типы ключей: RSA-ключи с длиной, кратной 8, в диапазоне от 2048 до 8192 бит. ECDSA-ключи с длиной 256, 384 или 521 бит. Переопределяет путь к каталогу для хранения сертификатов и ключей,
заданному при сборке с помощью параметра сборки
Указывает порт,
который модуль использует для обработки DNS-запросов от ACME-сервера.
Номер порта должен быть в диапазоне от 1 до 65535.
Чтобы использовать номер порта 1024 или ниже,
Angie должен работать с привилегиями суперпользователя. Задает Содержимое последнего файла сертификата (если он есть),
полученного клиентом с этим именем. Содержимое файла ключа сертификата,
используемого клиентом с этим именем. Важно Файл сертификата доступен,
только если клиент ACME получил хотя бы один сертификат,
а вот файл ключа доступен сразу после запуска. Тип проверки. Возможные значения: Имя ACME-клиента, инициирующего запрос. Проверяемый домен.
Если это wildcard-домен, он будет передан без префикса Строка авторизации: При DNS-проверке используется как значение TXT-записи,
имя которой формируется как
При HTTP-проверке эта строка должна использоваться
в качестве содержимого ответа, запрашиваемого ACME-сервером. Имя хука. Для разных типов проверки оно может иметь разные значения и смысл: Значение Смысл при DNS-проверке Смысл при HTTP-проверке Необходимо добавить соответствующую TXT-запись в конфигурацию DNS. Необходимо подготовить ответ на соответствующий HTTP-запрос. Можно удалить TXT-запись из конфигурации DNS. Данный HTTP-запрос более не актуален;
можно удалить ранее созданный файл со строкой авторизации. Токен для проверки.
При HTTP-проверке используется как имя запрашиваемого файла:
--with-http_acme_module
.
В пакетах и образах из
наших репозиториев
модуль включен в сборку.Пример конфигурации#
Директивы#
acme#
server_name
,
сертификат будет обновлен для учета изменений.challenge=dns
в acme_client
.server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate $acme_cert_rsa;
ssl_certificate_key $acme_cert_key_rsa;
ssl_certificate $acme_cert_ecdsa;
ssl_certificate_key $acme_cert_key_ecdsa;
acme rsa;
acme ecdsa;
}
acme_client#
acme_client
имя uri [enabled=
on
| off
] [key_type=
тип] [key_bits=
число] [email=
email] [max_cert_size=
число] [renew_before_expiry=
время] [retry_after_error=
off|время] [challenge=
dns
| http
] [account_key=
файл];enabled
on
.key_type
rsa
, ecdsa
.ecdsa
.key_bits
ecdsa
, 2048 для rsa
.email
max_cert_size
max_cert_size
,
значение max_cert_size
динамически увеличивается
до размера существующего файла сертификата.max_cert_size
,
процесс обновления завершится с ошибкой.8192
.renew_before_expiry
30d
.retry_after_error
off
,
клиент не будет снова пытаться получить сертификат после ошибки.2h
.challenge
dns
, http
.http
.account_key
acme_client_path#
--http-acme-client-path
.acme_dns_port#
acme_hook#
location
,
куда будут проксироваться запросы и данные для внешнего приложения.
Имя задает соответствующий ACME-клиент.Встроенные переменные#
$acme_cert_<имя>
#$acme_cert_key_<имя>
#$acme_hook_challenge
#dns
, http
.$acme_hook_client
#$acme_hook_domain
#*.
.$acme_hook_keyauth
#_acme-challenge. + $acme_hook_domain + .
.$acme_hook_name
#add
(добавление хука)remove
(удаление хука)$acme_hook_token
#/.well-known/acme-challenge/
+ $acme_hook_token
.