【问题标题】:Generating wildcard SSL on Ubuntu Nginx box and replacing expired SSL (cer & key)在 Ubuntu Nginx 机器上生成通配符 SSL 并替换过期的 SSL (cer & key)
【发布时间】: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


【解决方案1】:

最后答案是一个简单的语法错误。

-dry-run 必须是 --dry-run。如果没有双破折号,它会将-dry.. 的开头选为-d 并尝试在此之后解释一个URL,从而导致标签错误。

【讨论】: