![如何手动安装 letsencrypt apache 模块?](https://linux22.com/image/1489259/%E5%A6%82%E4%BD%95%E6%89%8B%E5%8A%A8%E5%AE%89%E8%A3%85%20letsencrypt%20apache%20%E6%A8%A1%E5%9D%97%EF%BC%9F.png)
Letsencrypt 可能很酷,但我只是不喜欢运行一个对我的生产机器进行许多未知和未记录(可能不可逆)修改的脚本。我想了解它的工作原理以及如何完全手动安装它,而不是使用任何自动加密脚本或工具。
因此,我使用他们的工具获取了证书,并手动将其安装到我的 apache 中,为此,我不得不暂时关闭它并运行他们的内置网络服务器,以验证该域名是否属于我。不幸的是,整个 letsencrypt 的文档非常糟糕,它全是关于自动化的东西,这些东西应该使用一些黑魔法或其他东西开箱即用,无需用户干预,因此它根本没有描述它在后台的实际工作原理 :(
现在我发现,为了更新证书,我要么需要再次关闭我的 Web 服务器(这不会发生),要么我可以安装一些特殊的 Apache 模块,我猜它在这里:https://github.com/letsencrypt/letsencrypt/tree/master/letsencrypt-apache不幸的是,根本没有关于如何做到这一点的任何文档。
我发现,如果我运行带有更多选项的黑魔法工具,它就会帮我安装。但我并不想这样,我想手动安装,这样我就能知道并看到我实际上在系统中做了哪些更改。
我该怎么做?我该如何编译模块并配置它以使其工作?我知道 letsencrypt 使用一种称为“ACME”的东西来验证域是否属于您,但除此之外我找不到更多信息。
答案1
现在我发现,为了更新证书,我要么需要再次关闭我的网络服务器(这不会发生),要么我可以安装一些特殊的 Apache 模块
这些都不是真的。
使用的验证协议在ACME 规范草案最简单的方法是“http-01”,您需要通过 HTTP 提供特定的文本文件。
如果你已经有一个正在运行的 Web 服务器,使用
--webroot
模式并告诉 LE 将其 http-01 验证文件直接放在你的/var/www/html
或类似的东西下。这不需要任何大多数时候都需要特殊配置。如果你不想自动配置,请使用
letsencrypt certonly
。这和 webroot 模式在入门页:要使用“webroot”插件获取证书,该插件可与任何 Web 服务器软件的 Webroot 目录一起使用:
letsencrypt certonly --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.is
此命令将获取 example.com、www.example.com、thing.is 和 m.thing.is 的单个证书;它将文件放在 /var/www/example 下以证明对前两个域的控制,并将第二对域的控制放在 /var/www/thing 下。
letsencrypt-apache
不是 Apache 模块;它是LE 客户端,仅用于自动安装第一个 LE 证书,而不必手动安装。(基本上就是你所说的不要想。)
答案2
在“高级”选项卡下,
https://certbot.eff.org/#centosrhel6-apache
./path/to/certbot-auto --apache certonly
然后你就可以修改你httpd.conf
和ssl.conf
你自己了。
抱歉,我不知道如何手动运行 ACME 协议。