Certbot的Apache插件验证器实际上为“http-01”挑战做了什么?

问题描述 投票:3回答:1

通过Certbot软件使用Let's Encrypt时,您可以使用Apache插件在Apache Web服务器上获取和安装证书。

使用“http-01”挑战(可能是验证域名所有权的最常用方法),验证者必须以某种方式通过端口80上的HTTP在/.well-known/acme-challenge目录中提供文件。

但是,从技术角度来看,Certbot如何以自动化方式实际执行此操作?

似乎Certbot既不会更改虚拟主机配置,也不会更改虚拟主机的文档根目录的实际内容。

那么Certbot如何在技术上完成在所需位置提供文件的任务呢?

apache lets-encrypt certbot
1个回答
1
投票

插件的configurator.pyperform()http_01.py file中调用另一个perform()。这将在配置的质询目录中创建质询文件,与文档根目录不同(_set_up_challenges()包含检查目录是否存在的代码并创建它)。然后_mod_config()处理服务:

  1. 查找或创建侦听已配置端口的VirtualHost,并从文件(self._set_up_include_directives(vh))加载配置数据。
  2. 使用恢复程序的register_file_creation()到临时_pre和_post规则文件的register the creation(这不会写入它们,但如果有以后的错误则确保删除它们)。
  3. 对于正在使用的配置器,在适当的CONFIG_TEMPLATEs对中选择并填充内部质询目录的已配置路径(例如,CONFIG_TEMPLATE22_PRE) - htaccess规则,其中_PRE是将.wellknown/acme-challenge/[TOKEN]请求指向challenge目录和_POST的重定向授予访问/.wellknown/acme-challenge/和挑战目录的权限。其中每个都写入先前注册的位置。
  4. 声明设置完成并返回。

所以,是的,临时配置更改将请求重定向到自定义目录路径。

© www.soinside.com 2019 - 2024. All rights reserved.