certbot生成证书,配置nginx,利用脚本自动续期

news2025/7/11 13:27:00

踩了大量坑,做下记录。以下适用于博主本人,但是未必会适用于所有人

单域名与泛域名证书生成

sudo certbot certonly --standalone --email '邮箱' -d '域名'

# 单域名
certbot certonly --preferred-challenges dns --manual  -d *.baidu.com(修改这里) --server https://acme-v02.api.letsencrypt.org/directory

# 泛域名 手动模式
certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini -d *.baidu.com(修改这里)

# 泛域名 自动 不想手动配置DNS用这个,配置看下面的续费脚本部分

nginx配置SSL


	    server {
	        listen 80;
	        server_name 对应的域名;
	        return 301 https://$server_name$request_uri; #强制ssl
	        location / {
				#项目地址+端口,可以本地,也可以外地
	            proxy_pass http://localhost:8080;
	        }
	
	    }
    	
    	# 443 ssl
		server {
		        listen       443 ssl;
		        server_name  对应的域名;
		
				#更改下方的证书路径
		        ssl_certificate       /etc/letsencrypt/live/baidu.com/fullchain.pem;
		        ssl_certificate_key  /etc/letsencrypt/live/baidu.com/privkey.pem;
		
		        ssl_session_cache    shared:SSL:10m; #这里可能要与其他的保持一致?
		        ssl_session_timeout  5m;
		
		        ssl_ciphers  HIGH:!aNULL:!MD5;
		        ssl_prefer_server_ciphers  on;
		
		        location / {

					#项目地址+端口,可以本地,也可以外地
		            proxy_pass http://localhost:8080;
		        }
		
		}

自动续期脚本

  在生成泛域名证书时,我们需要手动在DNS解析中配置TXT,然而续费命令renew无法去完成我们手动配置TXT的过程,需要我们手动配置,所以会报错。

  我们需要用到一个DNS插件,这样我们就不需要配置TXT了,可以直接生成证书或者续费,也可以尝试把下面命令中的厂商改成你的厂商。

DNS-plugins

  在上面链接中找到自己的服务商,我用的是cloudflare。注意:如果是国内的厂商,去GitHub上找脚本。


snap install certbot-dns-cloudflare # 我用这个没有用,我用的下面的pip安装方法

pip install certbot
pip install certbot-dns-cloudflare #注意pip与python环境的对应

  这个地方遇到了问题,很久才解决,因为我是双python环境,但是排除很久不知道哪里冲突了,干脆直接删了python3,在重新安装pip,让他变成python2的pip


certbot plugins #查看安装的插件

API Key在“My Profile”–>“API Tokens”

# 创建配置文件
touch /etc/letsencrypt/cloudflare.ini 

# 修改配置文件
vim /etc/letsencrypt/cloudflare.ini

# 添加如下内容,别忘记修改
# Cloudflare API credentials used by Certbot
dns_cloudflare_email = cloudflare@example.com
dns_cloudflare_api_key = 0123456789abcdef0123456789abcdef01234567

# 修改文件权限
chmod 600 /etc/letsencrypt/cloudflare.ini

接下来可以执行生成证书或者续费证书的操作了

修改续费配置文件(手动生成的证书才需要修改)

  如果我们使用的是手动配置的泛解析,那么我们无法直接执行renew,即使已经配置了DNS插件。
进入 /etc/letsencrypt/renewal 目录,找到续费配置文件,找到如下配置:

在这里插入图片描述
  可以看到,配置文件是手动方式,我们需要手动改成DNS方式(如果前面用的是DNS自动方式生成的证书,就没有这方面烦恼了)

  按照如下的配置进行修改:

# Options used in the renewal process
[renewalparams]
authenticator = dns-cloudflare
account = 71e9f9688487336cb4851b7174d327c6
dns_cloudflare_credentials = /etc/letsencrypt/cloudflare.ini
server = https://acme-v02.api.letsencrypt.org/directory

  如果不想修改配置,也可以重新执行上面的安装证书第三条配置命令。


certbot renew  #证书续期
certbot renew --force-renewal #强制更新 无视30天


--pre-hook:更新证书之前调用
--post-hook:更新证书之后调用
--deploy-hook:成功更新证书之后调用

# 创建一个shell脚本,内容如下:

certbot renew  --deploy-hook "nginx -s reload"

chmod +x certrenew.sh  #  赋予执行权限

# 编写cron定时任务
crontab -e

# 输入如下内容
0 0 1 * * /shell/certrenew.sh >> /shell/certrenew.log 2>&1

# 重启服务器
service crond restart

# 查看任务
crontab -l


无需续期
这里显示的是无需续费

其他报错

 [Errno 17] 错误

尝试运行 certbot update_symlinks

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/108864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【檀越剑指大厂—Springboot】Springboot高阶

一.整体介绍 1.什么是 Springboot? Springboot 是一个全新的框架,简化 Spring 的初始搭建和开发过程,使用了特定的方式来进行配置,让开发人员不再需要定义样板化的配置。此框架不需要配置 xml,依赖于 maven 这样的构建系统。 …

嵌入式分享合集125

一、多层板PCB设计中电源平面相对地平面要进行内缩? 有一些人绘制的PCB,在GND层和电源层会进行一定程度的内缩设计,那么大家有没有想过为什么要内缩呢。 需要搞清楚这个问题,我们需要来先了解一个知识点,那就是“20H”…

matlab 功率谱分析

谱分析介绍 谱分析是一种用于研究函数的数学方法。在数学中,谱分析的基本概念是将函数分解成不同的频率成分,以便更好地理解其行为。这些频率成分可以表示为正弦或余弦函数的级数和,称为谱线。 谱分析常用于信号处理、音频信息处理和图像处…

Windows系统增强优化工具

计算机系统优化的作用很多,它可以清理WINDOWS临时文件夹中的临时文件,释放硬盘空间;可以清理注册表里的垃圾文件,减少系统错误的产生;它还能加快开机速度,阻止一些程序开机自动执行;还可以加快上…

数据也能开口说话?这次汇报,老板疯狂给我点赞

年底了,大家的工作汇报进行得怎么样了? 是不是少不了各种数据?饼图、柱形图、条形图、折线图、散点图有没有充斥在你的 PPT 中? 我们出版社的数据统计一般截止到 12 月中下旬,所以前两天,我已经做完了年终…

白话说Java虚拟机原理系列【第三章】:类加载器详解

文章目录jvm.dllBootstrapLoader:装载系统类ExtClassLoader:装载扩展类AppClassLoader:装载自定义类双亲委派模型类加载器加载类的方式类加载器特性类加载器加载字节码到JVM的过程自定义/第三方类加载器类加载器加载字节码到哪?Cl…

浅谈冯诺依曼体系,操作系统和进程概念

文章目录浅谈冯诺依曼体系结构和操作系统冯诺依曼体系结构冯诺依曼体系结构图操作系统进程task_struct内容分类进程内核数据结构(task_struct)进程对应的磁盘代码查看进程ps 列出系统中运行的进程ps ajx 查看系统中所有运行的进程ps ajx | grep 程序名 :…

【Linux操作系统】——在Ubuntu20.04上安装MySQL数据库

在Ubuntu上安装MySQL MySQL是一个开源数据库管理系统,通常作为流行的LAMP(Linux,Apache,MySQL,PHP / Python / Perl)堆栈的一部分安装。它使用关系数据库和SQL(结构化查询语言)来管…

类美团外卖、骑手、类快递取餐柜、整合菜品供应商、前厅、后厨、配送、智能厨电设备的智慧餐饮业务

一种商业模型之类美团外卖、骑手、类快递取餐柜、整合前厅、后厨、智能厨电设备智慧餐饮业务架构 涉及到: 0、基础数据管理 1、菜谱创错 2、菜谱编译 3、菜谱商业化 4、厨电管理 5、后厨管理 6、前厅管理 …

【Call for papers】SIGKDD-2023(CCF-A/数据挖掘/2023年2月2日截稿)

29TH ACM SIGKDD CONFERENCE ON KNOWLEDGE DISCOVERY AND DATA MINING. 文章目录1.会议信息2.时间节点3.论文主题1.会议信息 会议介绍: 29TH ACM SIGKDD CONFERENCE ON KNOWLEDGE DISCOVERY AND DATA MINING. 会议全称: ACM Knowledge Discovery and D…

为什么 APISIX Ingress 是比 Traefik 更好的选择?

本文可以为正在选型 Kubernetes Ingress Controller 产品的用户提供一些帮助。 作者张晋涛,API7.ai 云原生专家,Apache APISIX Committer、Kubernetes Ingress Nginx Reviewer Apache APISIX Ingress Apache APISIX Ingress 是一个使用 Apache APISIX 作…

FrameLayout布局案例

框架布局-FrameLayout 1.FrameLayout简介 1.简介:白话,墙角堆砌东西 就是开辟一个巨大的空间控件的位置不能够指定,默认就是左上角后面对挡住前面的2.属性 属性名称 对应方法 说明 android:foreground setForeground(Drawable) 设置绘制…

【408篇】C语言笔记-第十四章( 二叉树的建树和遍历考研真题实战)

文章目录第一节:冒泡排序1. 排序2. 冒泡排序第二节:冒泡排序实战1. 步骤2. 代码3. 时间复杂度与空间复杂度第三节:快速排序原理与实战1. 基本思想2. 快速排序实战3. 时间复杂度与空间复杂度第四节:插入排序原理及实战1. 插入排序原…

HSF 实现原理

HSF 实现原理 提供服务的流程 - server启动时候向ConfigServer注册 - client启动时候向ConfigServer请求list - client缓存list,发现不可用的server,从缓存中remove - ConfigServer通过心跳包维护可用server的list - list有更新的时候,…

单片机——LED

0. 单片机编程的一般步骤 目标分析:点亮开发板上的LED灯 电路原理图分析:相关器件的工作原理 数据手册分析:IO端口控制 代码编写、编译 下载与调试 1. LED简介 Led:即发光二极管,具有单向导通性,一般…

验证码、通知短信API常见使用问题

如今短信应用于我们生活工作的方方面面,注册或者登录一个应用可以用短信验证码快速登录,支付可以使用短信验证码;商家搞促销活动可以发送通知短信给客户,会员到期了商家可以发送告警短信给会员用户…可见验证码短信API和通知短信A…

JavaFX爱好者看过来,这款工具值得拥有

前言 各位CSDN的博友们,随着各地政策的放开,大伙现在是在水深火热当中呢?还是天选打工人-安然无羊。在这里,希望阳了的朋友,赶紧恢复健康,早日康复。希望没有阳的朋友们,继续坚持,万…

聊聊设计模式-解释器模式?

简介 解释器模式属于行为型模式。它是指给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。是一种按照规定的语法进行解析的模式 编译器可以将源码编译解释为机器码,让CPU能进行识别并…

C++调用matlab引擎画三维图

VS2012设置 项目–项目属性–配置属性–VC目录–包含目录 D:\MATLAB\R2016a\extern\include 项目–项目属性–配置属性–VC目录–库目录 D:\MATLAB\R2016a\extern\lib\win64\microsoft 添加依赖项有两种方法: 方法一:项目中设置 项目–项目属性–配置属…

一、线程相关概念

文章目录相关概念程序(program)进程线程单线程与多线程并发与并行相关概念 程序(program) 是为完成特定任务、用某种语言编写的一组指令的集合。简单的说:就是我们写的代码。 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程&#xff0c…