发布者认证信息(营业执照和身份证)未完善,请登录后完善信息登录
 终于懂了最新消息学院:Let's Encrypt证书一处申请多服务器同步教程 - 最新消息 - 三农网
Hi,你好,欢迎来到三农网
  • 产品
  • 求购
  • 公司
  • 展会
  • 招商
  • 资讯
当前位置: 首页 » 资讯 » 致富有道 找商家、找信息优选VIP,安全更可靠!
终于懂了最新消息学院:Let's Encrypt证书一处申请多服务器同步教程 - 最新消息
发布日期:2023-09-21 16:13:47  浏览次数:15

我自己域名的SSL证书都是使用的Let's Encrypt,不但免费而且使用Certbot申请也特别方便快速。之前都是申请单域名的证书,在每个需要的服务器上分别单独申请。

开始需要证书的服务少还好,后来越来越多了,自己的一个小网站、NextCloud服务器、OpenVPN、家里的路由器后台、OpenMediaVault等,这样的话在每个机器上都得申请一次,太繁琐。而Let's Encrypt支持泛域名申请,那么我们就可以在一台服务器上申请然后同步到其他服务器上。

于是我抽空这两天简单做了一个Let's Encrypt证书自动续租及其他服务器自动同步的程序。服务运行模式为客户端-服务器模式,代码使用Python3开发。

>>GitHub项目地址<<

整套服务的两种工作模式:

主动式(相对于客户端而言):该模式就是客户端自动请求服务端,如果发现证书已经变动则下载证书。可以将客户端脚本加入crontab,让脚本定时检查服务端证书的变化,并获取。这种方式相对于订阅模式缺乏实时性,但也影响不大,Let's Encrypt证书续租一次三个月有效期,而只能提前30天续租,只要客户端更新及时,不会逾期也,可以定时任务设置为每天运行。

订阅模式:该模式讲究实时性,只要服务端续租成功将马上将证书同步到已经订阅服务的客户端服务器上。客户端订阅的时候会将服务端的SSH公钥注入到本地,已方便服务端免密码同步证书文件。服务端免密同步使用Rsync。客户端也需要加入Crontab来不断订阅,因为订阅的有效期为60天。

具体教程如下:

certbot-async

该项目是一个Let's Encrypt证书续租及服务器间同步程序,目的是为泛域名证书在一台服务器上申请,其他需要证书的服务器自动同步。

服务端

在启动服务端程序之前,首先要使用Certbot(地址:/)成功申请证书。

参考以下链接及官方文档:-/posts/

将项目克隆到/root/certbot-asnyc,如在其他位置需自行修改命令参数

该服务须以管理员权限运行,因为Let's Encrypt目录的用户为root。如果root用户没有生成过ssh key,还需先使用ssh-keygen生成公钥。

在项目下创建来配置相关设置,可选配置参数:

{     "domain": "", //申请证书的域名,如     "certbot_path": "", // certbot-auto文件位置,建议将其放入/usr/bin下     "renew_period": 10, //续租周期,默认10天尝试续租一次     "port": 8000, //服务监听端口     "access_key": "", //认证key     //配置邮箱以便通知续租情况,可不配置     "smtp_server": "", //邮箱服务器地址     "smtp_port": "", //邮箱服务器端口     "smtp_ssl": true, //是否启用SSL     "smtp_email": "", //邮箱地址     "smtp_password": "", //邮箱密码     "notify_receiver": "" //接收通知的邮箱 }

在项目下创建以启用在白名单功能,将允许访问的ip一行一个写入文件内。删除该文件则所有ip均可访问。

服务端启动可选参数:

-r, --renew 直接续租,不启动服务 -s, --ssl  使用https启动服务,默认使用http

Docker启动

1、首先安装docker

sudo apt-get update sudo apt-get install docker-ce

2、构建镜像

docker build --rm -f "Dockerfile" -t certbot-async:latest .

3、启动容器

docker run -d -it  -v /root/certbot-async:/root/certbot-asnyc  -v /etc/letsEncrypt:/etc/letsEncrypt  -v /root/.ssh:/root/.ssh  -p 8000:8000  --rm --name certboot-async certbot-async python ./

使用python3直接启动

1、安装pipenv

python3 -m pip install pipenv

2、安装依赖

pipenv install

3、启动服务程序

pipenv run python ./

客户端

在项目下创建来配置相关设置,可选配置参数

{       "server_host": ".1:8000", //服务端地址     "access_key": "", //认证key,需与服务端一样     "cert_dir": "./letsEncrypt", //证书存放位置     "after_script": "echo $HOME", //获取证书后执行的命令     "ssh_port": "22" //本地ssh端口 }

客户端有两种工作模式:

主动模式

直接从服务端下载证书文件

pipenv run python ./

订阅模式

pipenv run python ./ -rs

订阅后,服务端续租成功后会自动将证书同步到客户端服务器,讲求实时性。订阅有效期为60天。须在60天内再次订阅,逾期服务端将不会同步。

最新消息注:该文章由最新消息编辑整理,作者原博客地址

VIP企业最新发布
全站最新发布
最新VIP企业
背景开启

三农网是一个开放的平台,信息全部为用户自行注册发布!并不代表本网赞同其观点或证实其内容的真实性,需用户自行承担信息的真实性,图片及其他资源的版权责任! 本站不承担此类作品侵权行为的直接责任及连带责任。

如若本网有任何内容侵犯您的权益,请联系 QQ: 1130861724

网站首页 | 实时热点 | 侵权删除 | 付款方式 | 联系方式 | 法律责任 | 网站地图 ©2022 zxb2b.com 三农网,中国大型农产品交易电商平台 鄂公网安备42018502006996 SITEMAPS | 鄂ICP备14015623号-20

返回顶部