有时,如果我们对 let encrypt 证书涵盖的域进行了更改,我们可能会在 /etc/letsencrypt/中获得不需要的文件夹,例如 example.com-0001,这可能会导致我们链接到的证书的不幸影响Postfix(SMTP 服务器)和/或者 Dovecot(IMAP 服务器)配置可能不正确。
当用户尝试从其电子邮件客户端(即 Thunderbird 或者 Outlook)进行连接时,这可能会导致无效证书错误。
本文假设我们使用的是 Apache 虚拟主机设置,但它也可能对其他服务器有用。
只需忽略特定于 Apache 的部分。
解决这个问题很容易,可以通过几种方式完成。
最简单的方法可能是简单地删除证书并请求新的证书。
另一种方法是移动证书并删除过时的证书,但这需要我们手动编辑虚拟主机和其他配置文件,以链接到正确的证书。
删除 0001 目录
就我而言,我只是从 live、archive 和renewal 目录中删除了example.com 证书,如下所示:
sudo su rm -R /etc/letsencrypt/live/*example.com* rm -R /etc/letsencrypt/archive/*example.com* rm -R /etc/letsencrypt/renewal/*example.com*
这将删除子域目录和以 -0001 结尾的目录,以及裸域 (example.com)。
-R 参数使其具有递归性,因此它还会删除目录。
在我们执行下一步之前,请务必将 *-le-ssl.conf 文件中手动添加的任何修改复制到标准 example.com.conf 文件中。
这些文件位于 /etc/apache2/sites-available/。
最后,我们应该删除旧的 *-le-ssl.conf 文件,因为它们现在链接到不存在的证书。
为此,请从 /etc/apache2/sites-available/和 /etc/apache2/sites-enabled/目录中删除 example.com-le-ssl.conf。
rm -R /etc/apache2/sites-enabled/*example.com-le-ssl.conf rm -R /etc/apache2/sites-available/*example.com-le-ssl.conf
笔记。
这些文件在服务器上可能以不同的方式命名。
找出它们名称的最佳方法是导航到站点可用文件夹:
cd /etc/apache2/sites-available/ ls
当我们请求新证书时,由 let encrypt 自动重新创建 SSL 配置文件。
这一次,请仔细考虑要在证书中包含哪些域。
要请求新证书,请在终端中键入以下命令,并在询问时选择要包含的域:
letsencrypt