【发布时间】:2025-12-12 02:50:02
【问题描述】:
我正在尝试在我的 Nginx Ubuntu AWS EC2 实例上使用 Certbot 生成通配符 Let's Encrypt SSL 证书。
Ubuntu: 16.04.5 LTS
Nginx: v1.10.3
当我收到错误时,我目前无法生成通配符 SSL:
发生意外错误:
创建新订单时出错: : DNS 名称没有足够的标签
我查看了导致此错误的常见原因,我的请求中似乎没有任何错误:
cerbot -dry-run --nginx -d *.my-domain.org.uk
(当我只运行 my-domain.org.uk 而不仅仅是 *. 的命令时,我得到了同样的错误)
我认为错误可能源于我的 Nginx 配置。
在 '/etc/nginx/' 我有 'sites-available' 和 'sites-enabled',每个都有一个 'default' 文件和一个 'my-domain.org.uk' 文件。
在 nginx.conf 我包括:
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
因此,在“启用站点/默认”内,我有一个 443 服务器的正常配置:
server {
listen 443 ssl; # managed by Certbot
server_name *.my-domain.org.uk;
root /www/html/public;
... etc.
该文件还包括对我现在过期的 SSL 的引用:
ssl_certificate /etc/nginx/ssl/站点名称/站点名称.cer;
ssl_certificate_key /etc/nginx/ssl/站点名/站点名.key;
以及一些 Certbot 配置位:
包括/etc/letsencrypt/options-ssl-nginx.conf; # 由 Certbot 管理
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # 由 Certbot 管理
如果我注释掉对过期 SSL 证书的引用并重新启动 Nginx,则站点会中断。我可以发布更多配置文件,但这一直像过去一样工作(现在确实工作,只是 HTTPS 损坏)。我不确定是否
不确定我必须做什么才能克服这些 Certbot 错误并生成我的通配符 SSL。
【问题讨论】:
-
“我认为错误可能源于我的 Nginx 配置。”不太可能。将订单提交给 Let's Encrypt 时发生错误,该错误发生在验证过程之前,Nginx 将考虑该步骤。这也不是很相关的程序,所以这里离题了。
-
cerbot 是哪个版本的?确保您确定 ACMEv2 API,请参阅 LetsEncrypt 配置目录(或使用
--server选项)并查看其日志文件以获取有关错误的更多信息。此外,您还需要对通配符证书进行 DNS 验证,因此不会考虑 Nginx 或任何其他网络服务器。见community.letsencrypt.org/t/… -
我实际上不确定如何检查 certbot 版本,但我再次运行安装程序进行仔细检查。我知道这不太可能是 Nginx 配置问题,因为问题在此之前;说得通。但我完全不知道“DNS 名称没有足够的标签”错误是什么或导致它的原因。
-
certbot --version了解其版本。 -
所以我没有发现它,但答案很简单。
-dry-run需要是--dry-run。如果没有双破折号,它会将其选为-d,并在此之后尝试解释 URL,从而导致标签错误。
标签: ubuntu ssl nginx lets-encrypt certbot