当前位置: 首页 > news >正文

centos Let‘s Encrypt 免费https证书申请,并且自动续约

一、首先我们要使用certbot 工具

官网地址: https://certbot.eff.org/instructions?ws=other&os=centosrhel8

下载 snap 工具

sudo yum install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo systemctl status snapd
sudo systemctl start snapd

下载安装 cerbot
安装很简单

sudo snap install --classic certbot

二、装完后我们要配置证书

  1. ** 在使用 webroot 之前,先配置根目录** 我这边以 nginx 为例
     location ^~ /.well-known {allow all;root /www/xxx.top;}

主要是 cerbot 会访问到 .wel-known 这个目录

  1. 配置完后,我们运行命令
sudo certbot certonly --webroot -w /www/xxx.top -d xxx.top
-w 或 --webroot-path: 这是你的网站的根目录的路径,certbot 会在这个目录下创建一个名为 .well-known 的子目录(如果还没有的话),并在其中放置验证文件。这个参数后面的值应该是网站的根目录的绝对路径。-d: 这用于指定你想要为其获取或续约证书的域名。例如,-d xxx.top 表示你想要获取或续约 xxx.top 的证书。要注意的是,如果你为多个域名获取证书,你可以多次使用 -d 参数,例如:-d example.com -d www.example.com。如果这些域名使用相同的 webroot,那么只需一个 -w 参数。但是,如果它们有不同的 webroot,你需要为每个域名指定其对应的 webroot,如:-w /path/to/webroot1 -d example.com -w /path/to/webroot2 -d sub.example.com
  1. 证书生成后会打印证书路径
    一般在 /etc/letsencrypt/live/ 这个目录下

三、自动续约,申请的3个月就过期了

  1. 查看我们续约的域名
sudo certbot certificates
  1. 续约命令
sudo certbot renew --quiet --deploy-hook "/home/ec2-user/data/docker/services/nginx/deploy_script.sh"
这个快过期后自动续约, --quiet 参数,那么 Certbot 在默认情况下是不会在终端中输出任何信息的,除非发生错误。这是为了使 Certbot 在静默模式下运行,特别是在计划任务或自动化任务中非常有用。如果想强制续约测试,加上 --force-renewal,这个有次数限制,建议不需要强制续约,只在调试的时候使用sudo certbot renew --force-renewal --quiet --deploy-hook "/home/ec2-user/data/docker/services/nginx/deploy_script.sh"
  1. 完整脚本
  • 定时任务
每天去检测下
0 2 * * * /home/ec2-user/data/docker/services/nginx/renew_and_deploy.sh
  • renew_and_deploy.sh
#!/bin/bash# 获取 Certbot 提供的续约域名# Renew the certificate
sudo certbot renew --quiet --deploy-hook "/home/ec2-user/data/docker/services/nginx/deploy_script.sh"echo "Script executed at $(date)" >> /home/ec2-user/data/docker/services/nginx/logfile.log
  • deploy_script.sh
#!/bin/bash# 测试 强制续约测试 sudo certbot renew --force-renewal --quiet --deploy-hook "/home/ec2-user/data/docker/services/nginx/deploy_script.sh"
# 确认证书时间 sudo openssl x509 -in /etc/letsencrypt/live/xxx.top/fullchain.pem -text -noout | grep "After"
renewed_domains=$RENEWED_DOMAINS# 检查是否续约了特定的域名
if [[ $renewed_domains == *"xxx.top"* ]]; then# 对 example.com 做特定的操作echo " 续约xxx.top" >> /home/ec2-user/data/docker/services/nginx/logfile.log# Copy the renewed certificate to the desired locationsudo cp -f /etc/letsencrypt/live/xxx.top/fullchain.pem /home/ec2-user/data/docker/services/nginx/services/nginx/ssl/xxx.topsudo cp -f /etc/letsencrypt/live/xxx.top/privkey.pem /home/ec2-user/data/docker/services/nginx/services/nginx/ssl/xxx.top# Reload the nginx inside the docker containerdocker exec -it nginx nginx -s reload
fi

其他日志输出

  sudo tail -n 100 /var/log/letsencrypt/letsencrypt.log

相关文章:

centos Let‘s Encrypt 免费https证书申请,并且自动续约

一、首先我们要使用certbot 工具 官网地址: https://certbot.eff.org/instructions?wsother&oscentosrhel8 下载 snap 工具 sudo yum install snapd sudo systemctl enable --now snapd.socket sudo ln -s /var/lib/snapd/snap /snap sudo systemctl status…...

nodejs+vue城市轨道交通线路查询系统-计算机毕业设计

着社会的快速发展,计算机的影响是全面且深入的。社会生产水平的不断提高,日常生活中人们对备忘记账系统方面的要求也在不断提高,因特网的使用越来越广泛,而在众多的因特网中,万维网更是为人们带来了新鲜的体验。在这当…...

MFC Windows 程序设计[332]之十进制转十六进制编辑框(附源码)

MFC Windows 程序设计[332]之十进制转十六进制编辑框 程序之美前言主体运行效果核心代码逻辑分析结束语程序之美 前言 MFC是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包…...

转化率的催化剂:网站客服机器人如何推动企业销售?

随着5G的推广,人工智能技术的普及程度越来越高,人机交互已经成为这个时代的常态,无论是在我们的日常生活中还是在企业服务中都非常常见。如今,无论是营销型企业还是客服型企业,都纷纷采用网站客服机器人服务&#xff0…...

Go 包操作之如何拉取私有的Go Module

Go 包操作之如何拉取私有的Go Module 在前面,我们已经了解了GO 项目依赖包管理与Go Module常规操作,Go Module 构建模式已经成为了 Go 语言的依赖管理与构建的标准。 在平时使用Go Module 时候,可能会遇到以下问题: 在某 modul…...

VR酒店专业情景教学演示

VR酒店情景教学为学生带来的全新学习体验。在这个虚拟环境中,学生可以亲身经历各种酒店管理场景,从客房清洁、餐厅服务,到客人接待、突发事件处理,都能得到生动的模拟和实践。 客房清洁是酒店管理中最基础却也最重要的一环。通过V…...

odps函数

1、wm_concat 聚合函数,可以实现对分组后的列数据拼接成一行。 参数:第一个参数为分隔符,第二个参数为要聚合的列; select prov_code,wm_concat(-,city_name) from code_china_area group by prov_code; 2、datediff 日期函数…...

【golang】mysql默认排序无法实现 使用golang实现对时间字符串字段的排序

一、问题场景 1、mysql实现排序-性能低下 例如:某字段 finish_time 数据如下:6:13:27、 10:56:11、 21:56:11 会出现顺序如下的场景: 10:56:11、 21:56:11、6:13:27 二、解决方案 2、golang实现排序 package mainimport ("fmt"&…...

C语言学习笔记总结(一)

C语言基础 字节大小 char:1 字节 unsigned char:1 字节 short:2 字节 unsigned short:2 字节 int:通常为 4 字节(32 位平台)或 8 字节(64 位平台) unsigned int&#x…...

WPF:自定义按钮模板

1.WPF:自定义按钮模板 自定义封装的按钮属性可写在<Button.Template>中 Background"{TemplateBinding Background}"中的TemplateBinding代表使用按钮本身所使用的背景颜色 不在样式内修改背景颜色 例如&#xff1a; <Button Width"300" Height&q…...

Spring Boot集成Swagger接口分类与各元素排序问题

在上一篇中我们完成使用JSR-303校验&#xff0c;以及利用Swagger2得到相关接口文档&#xff0c;这节&#xff0c;我们在原先的基础之上&#xff0c;完成Swagger中关于对各个元素之间控制前后顺序的具体配置方法。 Swagger的接口的分组 首先我们需要对Swagger中的接口也就是以…...

盘点国产ChatGPT十大模型

什么是ChatGPT ChatGPT是一种基于OpenAI的GPT&#xff08;Generative Pre-trained Transformer&#xff09;模型的聊天机器人。GPT是一种基于深度学习的自然语言处理模型&#xff0c;它使用了Transformer架构来处理文本数据。GPT模型通过在大规模文本数据上进行预训练&#xff…...

【C++杂货铺】C++11特性总结:列表初始化 | 声明 | STL的升级

文章目录 一、C11简介二、统一的列表初始化2.1 { } 初始化2.2 列表初始化在内置类型上的应用2.3 列表初始化在内置类型上的应用2.4 initializer_list2.4.1 {1, 2, 3} 的类型2.4.2 initializer_list 使用场景2.4.3 模拟实现的 vector 中的 { } 初始化和赋值 三、声明3.1 auto3.1…...

doris的be其中失败的原因

doris的be其中失败的原因 修改limits文件 vim /etc/security/limits.conf1在文件的末尾处添加或者修改 * soft nofile 204800 * hard nofile 204800 * soft nproc 204800 * hard nproc 204800vim /etc/sysctl.conf#添加 fs.file-max 6553560 vm.max_map_count 2000000 1 2…...

LeetCode 面试题 16.04. 井字游戏

文章目录 一、题目二、C# 题解 一、题目 设计一个算法&#xff0c;判断玩家是否赢了井字游戏。输入是一个 N x N 的数组棋盘&#xff0c;由字符" "&#xff0c;“X"和"O"组成&#xff0c;其中字符” "代表一个空位。 以下是井字游戏的规则&#…...

Nodejs和Node-red的关系

NPM相关知识 npm概念 npm&#xff1a;Node Package Manager&#xff0c;Node包管理器。是Node.js默认的&#xff0c;以JavaScript编写的软件包管理系统。 npm工作原理 npm的操作原理是各个官网使用npm publish把代码提交到npm的服务器&#xff0c;其他人想要使用这些代码&am…...

Spring Boot整合OAuth2实现GitHub第三方登录

Spring Boot整合OAuth2&#xff0c;实现GitHub第三方登录 1、第三方登录原理 第三方登录的原理是借助OAuth授权来实现&#xff0c;首先用户先向客户端提供第三方网站的数据证明自己的身份获取授权码&#xff0c;然后客户端拿着授权码与授权服务器建立连接获得一个Access Token…...

Android [SPI,AutoSerivce,ServiceLoader]

记录一下在Android中使用SPI的过程。 1.项目gralde文件。 plugins {id kotlin-kapt } dependencies {implementation com.google.auto.service:auto-service:1.0-rc7 kapt "com.google.auto.service:auto-service:1.0-rc7" } 这个AutoServ…...

【Linux】ASCII码表-256个

ASCII码简介: ASCII码 是现今最通用的单字节编码系统&#xff0c;并等同于国际标准ISO/IEC 646 。在这个页面&#xff0c;你可以找到8位的256个字符、ASCII码表和Windows-1252 (code page 1252&#xff0c;它是国际标准ISO 8859-1的一个扩展字符集) 标准保持一致;ASCII码 是 A…...

node.js - 上传文件至阿里云oss

deploy.js const fs require(fs) const path require(path) const util require(util) const OSS require(ali-oss)/*因为&#xff0c;在Node.js中&#xff0c;许多核心模块的函数都是采用回调函数的形式进行异步操作的&#xff0c;即在操作完成后调用回调函数来处理结果。…...

xxl-job项目集成实战,全自动项目集成,可以直接使用到项目中

如果你看官方文档&#xff0c;在研究透&#xff0c;至少也得几天时间&#xff0c;如果你直接看我的文档&#xff0c;快速用到项目中&#xff0c;也就10分钟就搞好了。 xxl-job功能确实很强大&#xff0c;而且使用的人比较多&#xff0c;既然在使用xxl-job&#xff0c;那肯定是…...

Qt生成PDF报告

文章目录 一、示意图二、实现部分代码总结 一、示意图 二、实现部分代码 //! 生成测试报告 void MainWindow::createPdf(QString filename, _pdf_msg_& msg, const QMap<QString, int>& ok, const QMap<QString, int>& err) {//QDir dir;if(!dir.exis…...

Jenkins 安装全攻略:从入门到精通

目录 一&#xff1a;安装文件夹准备 1.打开&#xff0c;/home/admin目录 2.新建三个文件夹 二&#xff1a;安装tomcat 1.打开tomcat目录进行tomcat安装 2.解压tomcat文件 3.开放端口号 4.启动tomcat 5.浏览器访问tomcat 三&#xff1a;安装Maven 1.打开maven目录进行…...

迎重阳,话养老:平安养老险如何助力国民“养老梦”?

10月23日&#xff0c;我们将迎来传统节日重阳节&#xff0c;又称敬老节&#xff0c;自古就有祭祖、登高、赏菊三大风俗&#xff0c;流传至今&#xff0c;已成为人们孝老敬老的重要节日。 随着老龄化日益加深&#xff0c;在“敬老”的同时如何“备老”成为人民群众长期热议的话题…...

微信小程序获取用户信息

个人博客 微信小程序获取用户信息 个人微信公众号&#xff0c;求关注&#xff0c;求收藏&#xff0c;求指错。 文章概叙 本文主要讲的是小程序获取用户信息的&#xff0c;更新测试时间是2023-10-25 更改原因 首先&#xff0c;官网上的解释是这样的&#xff0c;为了安全合…...

Mysql 索引原理和优化方式

一、索引原理 什么是索引 索引是存储引擎用于快速找到记录的一种数据结构。可以联想到字典中的目录。 索引的分类 &#xff08;1&#xff09; Hash 索引 Hash 索引是比较常见的一种索引&#xff0c;他的单条记录查询的效率很高&#xff0c;时间复杂度为1。但是&#xff0c…...

Ubuntu安装VM TOOLS解决虚拟机无法和WINDOWS粘贴复制问题

1&#xff1a;首先使用VMware Workstation安装一个Ubuntu的系统。 2&#xff1a;现在已经不建议安装VM TOOLS。建议安装OPEN-VM-TOOLS。 3&#xff1a;进入系统使用下面的命令安装。 sudo apt install open-vm-tools 4&#xff1a;提示下面错误&#xff0c;Package open-vm…...

【Docker】Docker Swarm介绍与环境搭建

为什么不建议在生产环境中使用Docker Compose 多机器如何管理&#xff1f;如何跨机器做scale横向扩展&#xff1f;容器失败退出时如何新建容器确保服务正常运行&#xff1f;如何确保零宕机时间&#xff1f;如何管理密码&#xff0c;Key等敏感数据&#xff1f; Docker Swarm介…...

国产CAN总线收发芯片DP1042 兼容替换TJA1042

说明 1 简述 DP1042是一款应用于 CAN 协议控制器和物理总线之间的接口芯片&#xff0c;可应用于卡车、公交、小汽车、工业控制等领域&#xff0c;支持 5Mbps CAN FD 灵活数据速率&#xff0c;具有在总线与 CAN 协议控制器之间进行差分信号传输的能力&#xff0c;完全兼容“ISO…...

[架构之路-243]:目标系统 - 纵向分层 - 架构是表面轮廓、内部骨架、未来蓝图,企业组织架构、信息系统架构、软件架构、应用程序就架构

目录 一、什么是架构 1.1 架构是表面轮廓 1.2 架构是内部骨架 1.3 架构是蓝图&#xff0c;是愿景 1.4 架构是数据流、控制流、管理流、同步流 1.5 数据、控制、同步、管理的比较 二、架构的层级 2.1 企业组织架构 2.2 企业系统架构 2.2 信息系统架构 2.3 软件架构 …...