IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> certbot生成证书,配置nginx,利用脚本自动续期 -> 正文阅读

[系统运维]certbot生成证书,配置nginx,利用脚本自动续期

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

单域名与泛域名证书生成

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

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:43:44  更:2022-12-25 11:45:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/27 10:44:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码