Openfire:如何添加和自动更新 letsencrypt 证书?

Openfire: how to add and autorenew a letsencrypt certificate?

如何添加由certbot like自动生成的letsencrypt证书开火

  1. Letsencrypt 证书没有密码,如果有的话我不知道,因为它是自动生成的,但我确定它没有密码
  2. 我有一个自动更新它的 cron,因此我也想在 Openfire 上自动更新它

如果我使用证书管理器,则必须有人手动更新它。

查看证书管理器插件的自述文件:

证书管理器插件自述文件 概述

Certificate Manager 插件向 Openfire 添加了与其证书存储管理相关的功能。 安装

将 certificatemanager.jar 复制到 Openfire 安装的插件目录中。然后插件将自动部署。要升级到新版本,请将新的 certificatemanager.jar 文件复制到现有文件上。 配置

该插件是通过 Openfire 管理控制台配置的。安装后,可以使用新的管理控制台页面。该页面位于 "Server"、"TLS/SSL Certificates" 选项卡下。在那里,这个插件在侧栏上添加了一个新项目,名为 "Management"。 使用插件

此插件允许 Openfire 监视特定目录(默认情况下为 /resources/security/hotdeploy/)中的文件更改。每当发现一组由 PEM 编码的私钥和 PEM 编码的证书链组成的文件时,此插件将尝试将它们安装到 Openfire 身份存储中。 让我们加密/Certbot 集成

如上所述,目录观察器机制是利用 Let's Encrypts Certbot 生成的定期更新数据的绝佳方式。 Openfire 可以配置为监视 certbot 放置更新数据的目录。但是,这可能会导致文件权限问题(Openfire 进程通常无法读取 certbot 目录)。另一种解决方案是使用 certbots post-hook 将数据复制到 Openfire 可以使用的目录中。

为了扩展对 Bo Kersey 有用的回答,完成他回答的最后部分:"use certbots post-hook to copy the data into a directory that can be used by Openfire"。这些是完成这部分答案的步骤:

中的Certbot renew with post-hook documentation,表示脚本可以运行来自:/etc/letsencrypt/renewal-hooks/post实现解决方案:

"You can also specify hooks by placing files in subdirectories of Certbot’s configuration directory. Assuming your configuration directory is /etc/letsencrypt, any executable files found in /etc/letsencrypt/renewal-hooks/pre, /etc/letsencrypt/renewal-hooks/deploy, and /etc/letsencrypt/renewal-hooks/post will be run as pre, deploy, and post hooks respectively when any certificate is renewed with the renew subcommand."

解决步骤...

此解决方案依赖于 OpenFire 证书管理器插件 - 如上所述。要安装插件,请从 OpenFire 插件页面下载插件文件:certificatemanager.jar,地址如下 link:https://www.igniterealtime.org/projects/openfire/plugins.jsp

然后,在 OpenFire consul 的“插件”选项卡上,select,然后上传 certificatemanager.jar 文件。这应该安装插件 - 请参见下面的屏幕截图。

OpenFire Consul 中应出现一个新选项卡:服务器 > TLS/SSL 证书。说明插件安装正确

安装插件后,返回终端并运行执行以下命令:

sudo su
cd /etc/letsencrypt/renewal-hooks/post
nano copykeys.sh

复制粘贴:

#!/bin/bash
cp /etc/letsencrypt/live/MY-DOMAIN/privkey.pem /resources/security/hotdeploy/my-domain-privkey.pem
cp /etc/letsencrypt/live/MY-DOMAIN/fullchain.pem /resources/security/hotdeploy/my-domain-fullchain.pem

保存并退出:

Ctrl然后X,然后Y,然后Enter

使脚本可执行:

chmod +x copykeys.sh

完成!