ACME#

允许使用 ACME 协议 为:samp:stream 上下文中定义的服务器自动获取证书。

在:ref:从源代码构建<sourcebuild> 时, 该模块默认不会被构建;必须使用 构建参数 --with-stream_acme_module (同时需要:option:!--with-http_acme_module ) 来启用它。 在来自:ref:我们的仓库<install-packages> 的软件包和镜像中, 该模块已包含在构建中。

备注

为了正确运行,stream 块 必须位于:samp:http 块之后。 这是因为stream模块使用在HTTP配置解析期间 创建的客户端定义。

配置示例#

有关配置示例和设置说明,请参阅 流模块中的ACME 部分。

指令#

acme#

语法

acme name;

默认值

上下文

server

对于在所有引用HTTP模块中给定`name`的:ref:ACME客户端<acme_client> 的 所有:ref:s_server 块中 通过:ref:s_server_name 指令指定的所有域名, 将获取单个证书; 如果:samp:server_name 配置发生变化, 证书将被更新以适应这些变化。

在每次Angie启动时,会为所有缺少有效证书的域名请求新证书。 可能的原因包括证书过期、 文件丢失或无法读取, 以及证书设置的变更。

备注

目前,通过正则表达式指定的域名 不受支持,将被跳过。

通配符域名仅在:samp:acme_client 中的 challenge=dns 模式下支持。

可以多次指定此指令 以加载不同类型的证书,例如RSA和ECDSA:

server {

    listen 12345 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_cert_<name>#

具有此`name`的客户端获取的最后一个证书文件(如果有)的内容。

$acme_cert_key_<name>#

具有此`name`的客户端使用的证书密钥文件的内容。

备注

证书文件仅在ACME客户端至少获取了一个证书后才可用, 而密钥文件在启动后立即可用。