如何让 Certbot 忽略 nginx 中的特定域?

如何让 Certbot 忽略 nginx 中的特定域?

我的服务器上运行着大约 30 个域名,所有域名都拥有由 Certbot nginx 插件管理的 SSL 证书。除了一个域名之外,其他域名...我们称之为selfsigned.example.com

此域使用自签名证书,因为它由嵌入式设备访问,而我尚未设法使适当的证书链正常工作。嵌入式设备会检查证书指纹,因此只要我不需要撤销证书,它就非常安全。但重要的是服务器上的证书不会被 Certbot 替换,否则设备将拒绝连接。

我经常将新域添加到配置中,然后重新运行certbot --nginx以为其生成新证书。但每次我这样做时,certbot都会提示我:

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: whatever.example.com
2: something.example.com
...
17: selfsigned.example.com
...
32: thelastone.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 

如果我只是按下 Enter 键,Certbot 就会用 Let's Encrypt 的证书覆盖ssl_certificatessl_certificate_key指令selfsigned.example.com。因此,在这种情况下,我必须手动输入除 17 之外的所有数字。

作为一个谨慎而懒惰的系统管理员,我该如何才能做到只需按 Enter 键即可?也许有一些神奇的注释(类似于# managed by Certbot)可以让我说# Certbot ignore

答案1

certbot 的 nginx 配置管理确实不太好。每当它决定重写部分配置时,它就会弄乱您的配置。

但是:Let's Encrypt 支持通配符证书。因此,我只需为其创建通配符证书example.com,*.example.com并在 nginx 中手动配置它即可。

相关内容