我的服务器上运行着大约 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_certificate
和ssl_certificate_key
指令selfsigned.example.com
。因此,在这种情况下,我必须手动输入除 17 之外的所有数字。
作为一个谨慎而懒惰的系统管理员,我该如何才能做到只需按 Enter 键即可?也许有一些神奇的注释(类似于# managed by Certbot
)可以让我说# Certbot ignore
?
答案1
certbot 的 nginx 配置管理确实不太好。每当它决定重写部分配置时,它就会弄乱您的配置。
但是:Let's Encrypt 支持通配符证书。因此,我只需为其创建通配符证书example.com,*.example.com
并在 nginx 中手动配置它即可。