快速获取或续订多个域的LetsEncrypt SSL证书。自动将nginx配置为https前端和http反向代理。
multicerti的Python项目详细描述
快速展开
nginx
multicerti需要nginx。使用您喜爱的包管理器安装它,或从https://nginx.org/en/download.html" rel="nofollow">https://nginx.org/en/download.html
如果您已经在服务器上使用了nginx并且已经定制了nginx的配置,那么您应该备份当前的nginx.conf,因为multicerti会覆盖它。
在freebsd上,通过运行
sysrc nginx_enable=YES
巨蟒3
需要Python3.3或更高版本。如果尚未安装,请使用您喜爱的包管理器安装它。 确保也安装了pip3。通常,您可以通过运行:
python3 -m ensurepip
在debian或ubuntu上,您可能需要从包管理器安装pip3。 您还需要获得python3 dev、libssl dev和libffi dev包,以便正确安装multicerti所需的python模块。
apt-get install python3-pip python3-dev libssl-dev libffi-dev
安装
pip3 install multicerti
然后运行
multicerti reload
这样,multicerti将检查您的nginx安装并生成其默认配置文件。
它是一个json文件。默认情况下,它的位置是 /usr/local/etc/multicerti/multicerti.conf 。只需将一个或多个虚拟主机添加到vhosts列表。同时在配置文件中添加一个 registration_email 键。在向certbot注册ssl证书时使用此电子邮件。
{"vhosts":[{"domains":["mysite.example.com"],"protocols":["http","https"],"backends":["10.0.0.2:8080","10.0.0.2:8081"],"http_to_https":true},{"domains":["secure.example.com","payment.example.com"],"protocols":["https"],"backends":["10.0.0.3:80"]},{"domains":["oldsite.example.com"],"protocols":["http","https"],"redirect":"https://mysite.example.com"}],"registration_email":"sysadmin@example.com"}
您可以使用 ".example.com" 字符串将 example.com 和 www.example.com 域添加到列表中。您还可以为虚拟主机条目设置特定的电子邮件地址。例如:
{"vhosts":[{"domains":[".example.com"],"protocols":["http","https"],"backends":["10.0.0.2:8080","10.0.0.2:8081"],"registration_email":"bob@example.com","http_to_https":true}],"registration_email":"sysadmin@example.com",}
这将使用相同的ssl证书注册 example.com 和 www.example.com 域,使用 bob@example.com 作为注册电子邮件地址。顾名思义, http_to_https 选项将所有http请求重定向到https url。
如果您使用的服务器已经定制了nginx安装,那么您应该备份 nginx.conf ,因为multicerti会覆盖它。
现在以根用户身份运行:
multicerti reload
这就是你要做的。这将注册和/或续订您的所有ssl证书,并将您的所有http和https通信定向到正确的后端。
让我们加密由certbot颁发的证书有效期为90天。作为每月的cron任务运行multicerti reload将在适当的时候更新证书。选择一个月中的任意一天和一天中的任意时间,如果你这样做了的话(不是在午夜选择一个月的第一天)。这是为了避免到 的服务器的流量高峰,让我们对其进行加密。