有人可以给我一个要设置的清单,以便certbot可以向我发出letsencrypt SSL?我无法让它验证并且超时。
我可以通过域名访问。在 http 和 https 上。所以我知道虚拟主机文件设置正确。而且我知道这也不是防火墙或DNS问题。
我没有使用 .htaccess 文件夹或任何东西,只是一个带有 hello world 索引的空目录。
目录权限设置为 777
我想不出还有什么要检查的?
发现我的问题,它不是在计算机上配置的任何内容,而是我的 DNS 配置的问题。我的 IPv4 地址有 A 记录,我的 IPv6 地址有 AAA 记录,这导致了问题。解决方案是摆脱其中之一,之后认证顺利进行。
你需要(来自来源(
- Webroot 方法需要端口 80 上的 HTTP 才能验证 Certbot。
- 服务器名称必须与其相应的 DNS 的名称匹配。
- 可能需要更改主机上的权限,以允许对 http://domain.tld/.well-known 进行读取访问。
我如何创建和配置Certbot,SSL Cert和Nginx:
用于创建证书的命令
certbot certonly --webroot
--webroot-path /usr/share/nginx/html
--renew-by-default -d <YOUR_HOST_NAME.COM>
--config-dir ~/.certbot/config
--logs-dir ~/.certbot/logs
--work-dir ~/.certbot/work
在我的 nginx conf 中,
location ^~ /.well-known/acme-challenge/ {
allow all;
root /var/lib/letsencrypt/;
default_type "text/plain";
try_files $uri =404;
}
在 Apache 中,创建一个新文件
/etc/httpd/conf/extra/httpd-acme.conf
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"
<Directory "/var/lib/letsencrypt/">
AllowOverride None
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
并包含在/etc/httpd/conf/httpd.conf
引用
- Wiki -
> Let's Encrypt - ArchWiki
博客 -> 从 letsencrypt.org 获取开源SSL证书并在Nginx中使用