首页 > 解决方案 > 如何在 ejabberd 配置的服务器中更新 Lets 加密证书?

问题描述

如何在 ejabberd 配置的服务器中更新 Lets 加密证书?我的服务器是 Debian-jessie,我尝试使用以下命令更新 SSL 证书,certbot certonly -d mydomainname

但它产生了一个意想不到的错误:

授权程序失败。: urn:acme:error:connection ::连接期间超时(可能是防火墙问题)。跳过。

连接期间超时(可能是防火墙问题)

要修复这些错误,请确保您的域名输入正确,并且该域的 DNS A 记录包含正确的 IP 地址。此外,请检查您的计算机是否具有可公开路由的 IP 地址,并且没有防火墙阻止服务器与客户端通信。如果您使用的是 webroot 插件,您还应该验证您是否从您提供的 webroot 路径提供文件。

标签: ejabberddebian-jessie

解决方案


找到了正确的答案:

在执行该过程之前,您需要停止服务 ejabberd 服务,

 service ejabberd stop

然后将过期的 ssl pem 文件移动到其他地方,

mv /etc/ejabberd/ejabberd.pem  /etc/ejabberd/ejabberd.pem.backup

转到证书引导所在的目录,

cd /root

输入以下命令以更新所需域的证书

certbot certonly --webroot -w /etc/ejabberd -d yourdomain.com --force-renewal --rsa-key-size 4096

然后将生成的ssl文件合并到ejabberd配置文件中

cat /etc/letsencrypt/live/yourdomain.com/privkey.pem /etc/letsencrypt/live/chat.yourdomain.com/fullchain.pem > ejabberd.pem

然后将pem文件移动到ejabberd根路径下

mv ejabberd.pem /etc/ejabberd

chown ejabberd /etc/ejabberd/ejabberd.pem

启用 ejabberd 服务

service ejabberd start

service ejabberd status

推荐阅读