certbot申请泛域名证书并自动续签(使用docker进行部署)

一、涉及到的资源及文档

1、云解析 - OpenAPI 概览:https://next.api.aliyun.com/document/Alidns/2015-01-09/overview

2、certbot-auth-alidns:

https://github.com/zphiliam/certbot-auth-alidns

3证书来源于

LetsEncrypt

4、certbot官方:

https://certbot.eff.org/

二、主要步骤:

1、用git拉取certbo

安装certbot

从gitbhub拉取组件:
git clone https://github.com/tengattack/certbot-dns-aliyun.git

2、获取阿里云AccessKey

包括id和secret,成对儿使用,登录阿里云控制台,可以使用主账号的AccessKey,推荐利用RAM创建子账号的AccessKey,更安全。

  • 所以首先创建ram账号

  • 添加dns访问权限,添加访问accesskey权限

  • 获取刚创建ram用户的id和secret

3、修改配置文件

  • 修改配置文件scripts/credentails/aliyun.ini

(1)、dns_aliyun_access_key 是访问阿里云 DNS 服务所需的 Access Key ID,它是一个唯一的标识符,用于验证您对阿里云资源的访问权限。

(2、)dns_aliyun_access_key_secret 是与 Access Key ID 相对应的密钥秘钥,用于对访问进行身份验证。这是一个保密信息,不应公开或共享。

  • 修改配置文件scripts/letsencrypt/cli.ini

修改域名和邮箱:

  • 个别参数讲解

(1)、installer = nginx: 这个参数指定了使用的安装器,这里是 Nginx。这意味着 Certbot 将尝试自动配置 Nginx 服务器以使用新的证书。

(2)、agree-tos = true: 这个参数表示同意 Let's Encrypt 的服务条款。

(3)、no-eff-email = true: 这个参数表示不向 Let's Encrypt 提供效果统计数据的电子邮件地址。

(4)、authenticator = dns-aliyun: 这个参数指定了认证器,即用于验证域名所有权的方法。这里使用的是阿里云 DNS 认证

(5)、preferred-challenges = dns: 这个参数指定了首选的验证方式,这里是 DNS 验证。在 DNS 验证中,Certbot 通过添加特定的 DNS 记录来验证域名。

(6)、dns-aliyun-credentials = '/root/.secrets/aliyun.ini': 这个参数指定了阿里云 DNS 认证所需的凭据文件的路径。该凭据文件可能包含访问阿里云 API 的密钥和其他配置信息。

(7)、dns-aliyun-propagation-seconds = 120: 这个参数指定了等待 DNS 记录传播的时间(以秒为单位)。在修改 DNS 记录后,需要一些时间让修改生效,这个参数设置了等待的时间。

(8)、email = example@demo.com: 这个参数是必需的,用于提供有效的电子邮件地址,以便通知证书相关的信息。

(9)、domains = '*.demo.com,demo.c: 这个参数是必需的,用于指定要申请证书的域名列表。在这个例子中,包括 *.demo.com 和 demo.com

****这里可以是主域名,也可以是泛域名

  • 泛域名(Wildcard Domain)是指一个通配符(通常是 * 号)被用于代表任意子域名的域名。这意味着泛域名可以匹配多个不同的子域名。
  • 主域名(Primary Domain)是指一个完整的域名,它是由顶级域名(如 .com、.org)和次级域名(如 example)组成的。

4、编写nginx的配置文件

/certbot-dns-aliyun/scripts/letsencrypt/live 这个目录下 需要注意:此文件为软连接文件在使用

源文件在:/certbot-dns-aliyun/scripts/letsencrypt/letsencrypt/archive/

5、执行脚本

./build.sh

****构建一个包含NGINX和阿里云DNS插件的镜像*****

./setup.sh

*****这是一个Shell脚本,主要作用是安装Let's Encrypt证书自动更新的定时任务。****

./run.sh

****用于执行Certbot与阿里云DNS插件的容器化操作。*****

6、启动nginx的docker容器

  • docker-compos up -d

certbot申请泛域名证书并自动续签保姆级教程的更多相关文章

  1. 使用 certbot 申请泛域名https证书

    使用 certbot 申请泛域名https证书 Intro Certbot 是一个基于 Let's Encrypt 的自动化申请证书的工具,支持的系统和web server也很多,详见 Certbot ...

  2. Let's encrypt申请泛域名证书以及报错处理

    申请泛域名证书的步骤请参考该链接地址: https://www.jianshu.com/p/df6d13187578 报错信息: No matching distribution found for ...

  3. Let's encrypt申请泛域名证书

    1.下载工具 wget https://dl.eff.org/certbot-auto chmod a+x ./certbot-auto 2.初始化 ./certbot-auto 3.获取证书(1) ...

  4. Let's Encrypt免费泛域名证书申请

    一. 下载acme.sh,以下四条命令任选一条即可 curl https://get.acme.sh | shwget -O - https://get.acme.sh | sh curl https ...

  5. Let's Encrypt 泛域名证书申请

    泛域名 泛域名证书又名通配符证书是SSL证书中的其中一种形式,一般会以通配符的形式(如:*.domain.com)来指定证书所要保护的域名. OV证书和DV证书都会有通配符的域名形式提供,而EV证书一 ...

  6. 让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt

    让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt 为什么要用HTTPS  网站没有使用HTTPS的时候,浏览器一般会报不安全,而且在别人访问这个网站的时候,很有可 ...

  7. CentOS 7配置Let’s Encrypt支持免费泛域名证书

    Let’s Encrypt从2018年开始支持泛域名证书,有效期3个月,目前仅支持acme方式申请,暂不支持certbot. 1.安装acme.sh curl https://get.acme.sh ...

  8. let's encrypt部署免费泛域名证书

    环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhos ...

  9. acme.sh建立SAN证书 和泛域名证书

    文件来源 https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert domain=$domain time=`date +%Y%m%d% ...

  10. gogetssl申请的域名证书私钥文件丢了,可以重新申请个吗?

    因为gogetssl是不保存我们使用浏览器生成的KEY文件的,CSR文件倒是可以有办法再找到 也就是说Certificate Signing Request(CSR)可以想想办法,但是Your Pri ...

随机推荐

  1. 【RocketMQ】事务实现原理总结

    RocketMQ事务的使用场景 单体架构下的事务 在单体系统的开发过程中,假如某个场景下需要对数据库的多张表进行操作,为了保证数据的一致性,一般会使用事务,将所有的操作全部提交或者在出错的时候全部回滚 ...

  2. 连接远程MySQL报错问题-Datagrip

    前言: 记录:DataGrip连接远程服务器MySQL数据库报错问题. 问题: 1.Communications link failure--会话连接失败 原因分析: 1.端口被防火墙了 2.MySQ ...

  3. 【题解】《PTA-Python程序设计》题目集分享

    第1章-1 从键盘输入两个数,求它们的和并输出 (30 分) 本题目要求读入2个整数A和B,然后输出它们的和. 输入格式: 在一行中给出一个被加数在另一行中给出一个加数 输出格式: 在一行中输出和值. ...

  4. vue项目使用lodash节流防抖函数问题与解决

    背景 在lodash函数工具库中,防抖_.debounce和节流_.throttle函数在一些频繁触发的事件中比较常用. 防抖函数_.debounce(func, [wait=0], [options ...

  5. C#堆排序算法

    前言 堆排序是一种高效的排序算法,基于二叉堆数据结构实现.它具有稳定性.时间复杂度为O(nlogn)和空间复杂度为O(1)的特点. 堆排序实现原理 构建最大堆:将待排序数组构建成一个最大堆,即满足父节 ...

  6. 【Flask模板注入】

    [Flask模板注入]--概览 背景 Flask是python语言下的轻量级web应用框架,可以用来开发一些简单的网站.它使用Jinjia2渲染引擎(将html文件存放在templates文件夹中,当 ...

  7. Linux运维技能图谱

    前言 该技能图谱依个人经验绘制,不适用于所有运维岗位.对于刚入行的从业者,也不需要按照图谱全学一遍,应该根据岗位工作内容来学习.有些技术我也不会,但作为一个选项我也写进去了,比如容器运行时有Docke ...

  8. MySQL 数据库表格创建、数据插入及获取插入的 ID:Python 教程

    创建表格 要在MySQL中创建表格,请使用"CREATE TABLE"语句. 确保在创建连接时定义了数据库的名称. 示例创建一个名为 "customers" 的 ...

  9. Flask解决跨域问题

    什么是跨域问题 跨域问题指的是浏览器限制了从一个源(协议.域名.端口)访问另一个源的资源的行为,这个限制是浏览器的一个安全机制.如果一个网页从一个源加载了另一种类型的资源(例如 HTML.CSS.脚本 ...

  10. SpringBoot整合数据可视化大屏使用

    整合数据可视化大屏是现代化应用程序中的一个重要组成部分,它可以帮助我们更直观地展示和理解大量的数据. 在Spring Boot框架中,我们可以使用一些优秀的前端数据可视化库来实现数据可视化大屏,例如E ...