ejabberd - 如何在 ejabberd 配置的服务器中更新 Lets 加密证书?
问题描述
如何在 ejabberd 配置的服务器中更新 Lets 加密证书?我的服务器是 Debian-jessie,我尝试使用以下命令更新 SSL 证书,certbot certonly -d mydomainname
但它产生了一个意想不到的错误:
授权程序失败。: urn:acme:error:connection ::连接期间超时(可能是防火墙问题)。跳过。
连接期间超时(可能是防火墙问题)
要修复这些错误,请确保您的域名输入正确,并且该域的 DNS A 记录包含正确的 IP 地址。此外,请检查您的计算机是否具有可公开路由的 IP 地址,并且没有防火墙阻止服务器与客户端通信。如果您使用的是 webroot 插件,您还应该验证您是否从您提供的 webroot 路径提供文件。
解决方案
找到了正确的答案:
在执行该过程之前,您需要停止服务 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
推荐阅读
- python - 尝试从 Django ADMIN 中的外部用户模型调用 is_active 方法
- excel - 运行时错误 1004 MDeterm 属性
- c - 如何使用 C 中的错误处理代码访问并行结构值
- angular - formsarray 中的 formarray.controls 在角度 5 中是什么意思?
- matlab - 模糊 c 均值聚类
- regex - 使用正则表达式确保某些内容包含单独的数字
- java - 使用 Jackson JsonParser 跳过字节
- python - 在 Python 中使用多个条目格式化 Dictionary 的正确方法
- python - 是否可以使用 PyPDF2 将多边形注释写入 pdf?
- github - .md 中的 Github Jekyll Liquid 对象访问问题