ACME#
Обеспечивает автоматическое получение сертификатов с использованием протокола ACME.
При сборке из исходного кода модуль не собирается по умолчанию; его необходимо
включить с помощью параметра сборки
--with-http_acme_module
.
В пакетах и образах из
наших репозиториев
модуль включен в сборку.
Пример конфигурации#
Примеры конфигурации и инструкции по настройке см. в разделе Настройка ACME.
Директивы#
acme#
Для всех доменов, указанных в директивах server_name
во всех блоках server,
которые ссылаются на клиент ACME с именем имя,
будет получен единый сертификат;
если изменится конфигурация server_name
,
сертификат будет обновлен для учета изменений.
Примечание
Сейчас домены со звездочкой и домены, заданные через регулярные выражения, не поддерживаются и будут пропущены.
Эта директива может быть указана несколько раз для загрузки сертификатов разных типов, например RSA и ECDSA:
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#
|
|
По умолчанию |
— |
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-клиентов. Поддерживаемые типы ключей:
|
acme_client_path#
Переопределяет путь к каталогу для хранения сертификатов и ключей,
заданному при сборке с помощью параметра сборки
--http-acme-client-path
.
acme_dns_port#
Указывает порт, который модуль использует для обработки DNS-запросов от ACME-сервера. Номер порта должен быть в диапазоне от 1 до 65535. Чтобы использовать номер порта 1024 или ниже, Angie должен работать с привилегиями суперпользователя.
acme_hook#
Задает location
,
куда будут проксироваться запросы и данные для внешнего приложения.
Имя задает соответствующий ACME-клиент.
Встроенные переменные#
$acme_cert_<имя>
#
Содержимое последнего файла сертификата (если он есть), полученного клиентом с этим именем.
$acme_cert_key_<имя>
#
Содержимое файла ключа сертификата, используемого клиентом с этим именем.
Важно
Файл сертификата доступен, только если клиент ACME получил хотя бы один сертификат, а вот файл ключа доступен сразу после запуска.
$acme_hook_challenge
#
Тип проверки. Возможные значения: dns
, http
.
$acme_hook_client
#
Имя ACME-клиента, инициирующего запрос.
$acme_hook_domain
#
Проверяемый домен.
Если это wildcard-домен, он будет передан без префикса *.
.
$acme_hook_keyauth
#
Строка авторизации:
При DNS-проверке используется как значение TXT-записи, имя которой формируется как
_acme-challenge. + $acme_hook_domain + .
.При HTTP-проверке эта строка должна использоваться в качестве содержимого ответа, запрашиваемого ACME-сервером.
$acme_hook_name
#
Имя хука. Для разных типов проверки оно может иметь разные значения и смысл:
Значение |
Смысл при DNS-проверке |
Смысл при HTTP-проверке |
|
Необходимо добавить соответствующую TXT-запись в конфигурацию DNS. |
Необходимо подготовить ответ на соответствующий HTTP-запрос. |
|
Можно удалить TXT-запись из конфигурации DNS. |
Данный HTTP-запрос более не актуален; можно удалить ранее созданный файл со строкой авторизации. |
$acme_hook_token
#
Токен для проверки.
При HTTP-проверке используется как имя запрашиваемого файла:
/.well-known/acme-challenge/
+ $acme_hook_token
.