如何在 ejabberd 配置的服务器中续订 Lets encrypt 证书?

How to renew Lets encrypt certificate in ejabberd configured server?

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

但它产生了意外错误:

Failed authorization procedure. : urn:acme:error:connection ::Timeout during connect (likely firewall problem). Skipping.

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

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

找到正确答案:

You need to stop the service ejabberd service before you do the process,

 service ejabberd stop

Then move the expired ssl pem file to somewhere else,

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

Go to the directory where the cert boot locating,

cd /root

Enter the below command in-order to renew the certificate for the required domain

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

Then move the pem file to the ejabberd root path

mv ejabberd.pem /etc/ejabberd

chown ejabberd /etc/ejabberd/ejabberd.pem

Enable ejabberd service

service ejabberd start

service ejabberd status