使用阿里云Certbot-DNS-Aliyun插件自动获取并更新免费SSL泛域名(通配符)证书
进入nginx docker,一般是Alpine Linux系统
1. 依次执行命令:
sudo docker-compose exec nginx bashapk updateapk add certbot apk add --no-cache python3 python3-dev build-baseapk add python3 py3-pippip3 install --upgrade pippip3 install certbot-dns-aliyun -i https://mirrors.aliyun.com/pypi/simple/ --default-timeout=100 --no-cache-dir
最后一步一直报错,把pip3版本改成21.3.1, python版本改为3.6成功了。
pip3 install --upgrade pip==21.3.1pip3 --version
pip 21.3.1 from /usr/lib/python3.6/site-packages/pip (python 3.6)
2.创建阿里云RAM 用户账号,赋予AliyunDNSFullAccess权限,阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
sudo vi /etc/letsencrypt/aliyun.ini
在文件中添加以下内容:
certbot_dns_aliyun:dns_aliyun_access_key = your-access-key
certbot_dns_aliyun:dns_aliyun_access_key_secret = your-access-key-secret
3.生成证书
certbot certonly -a certbot-dns-aliyun:dns-aliyun --certbot-dns-aliyun:dns-aliyun-credentials /etc/letsencrypt/aliyun.ini -d '*.xxx.com,xxx.com' --email xxx@163.com --config-dir /etc/nginx/ssl
--config-dir参数为证书存放路径,可以去掉,默认是/etc/letsencrypt/live/
vi /usr/local/bin/ssl_renew_and_reload.sh
在文件中添加以下内容:
#!/bin/shcertbot renew \-a certbot-dns-aliyun:dns-aliyun \--certbot-dns-aliyun:dns-aliyun-credentials /etc/letsencrypt/aliyun.ini \--email xxx@163.com \--config-dir /etc/nginx/ssl \--certbot-dns-aliyun:dns-aliyun-propagation-seconds 60 nginx -s reload
设置权限:
chmod +x /usr/local/bin/ssl_renew_and_reload.sh
查看证书:
certbot certificates
4.定时任务
crontab -e0 0 * * * /usr/local/bin/ssl_renew_and_reload.sh >> /var/log/letsencrypt/renew.log 2>&1
注意:
使用生成证书的命令是有接口限制的,因此不建议频繁调用,如果报错了先排查出问题再继续,可以在末尾加上--dry-run用于获取测试证书排查问题,没有报错后再去掉它获取正式证书
certbot certonly --webroot -w /home/wwwroot/xxx -d xxx.com --dry-run
sudo certbot renew --dry-run
查看生成的文件路径和参数:cat /etc/letsencrypt/renewal/域名.conf
运行:/usr/local/bin/ssl_renew_and_reload.sh
检查 /var/log/letsencrypt/letsencrypt.log 有没有错误
相关文章:
使用阿里云Certbot-DNS-Aliyun插件自动获取并更新免费SSL泛域名(通配符)证书
进入nginx docker,一般是Alpine Linux系统 1. 依次执行命令: sudo docker-compose exec nginx bashapk updateapk add certbot apk add --no-cache python3 python3-dev build-baseapk add python3 py3-pippip3 install --upgrade pippip3 install certbot-dns-ali…...
Node.js安装配置+Vue环境配置+创建一个VUE项目
目录 安装Node.js搭建VUE环境 安装Node.js 下载 测试是否安装成功 在目录下新建两个文件夹 管理员打开cmd npm config set prefix "D:\Software\nodejs\node_global" npm config set cache "D:\Software\nodejs\node_cache"将默认的 C 盘下【 AppData\…...
“TA”说|表数据备份还原:SQLark 百灵连接助力项目部署验收
💬 南飞雁|应用开发工程师 有些重要项目的部署验收,会在生产环境完成,验收完成后,又需要把这部分数据清空。这时就需要对数据表进行备份和还原,虽然可以通过命令直接实现,但是有一些操作门槛&am…...
【FFmpeg】解封装 ① ( 封装与解封装流程 | 解封装函数简介 | 查找码流标号和码流参数信息 | 使用 MediaInfo 分析视频文件 )
文章目录 一、解封装1、封装与解封装流程2、解封装 常用函数 二、解封装函数简介1、avformat_alloc_context 函数2、avformat_free_context 函数3、avformat_open_input 函数4、avformat_close_input 函数5、avformat_find_stream_info 函数6、av_read_frame 函数7、avformat_s…...
Spring Boot 集成 MyBatis 全面讲解
Spring Boot 集成 MyBatis 全面讲解 MyBatis 是一款优秀的持久层框架,与 Spring Boot 集成后可以大大简化开发流程。本文将全面讲解如何在 Spring Boot 中集成 MyBatis,包括环境配置、基础操作、高级功能和最佳实践。 一、MyBatis 简介 1. SqlSession …...
C语言小练习-打印字母倒三角
编写一个程序,在用户输入某个大写字母后,产生一个金字塔图案。 #include <stdio.h>int main(int argc,char *argv[]) {char ch; loop:printf("请输入大写字母!\n");scanf("%c",&ch);getchar();if(ch < A ||…...
Linux -- 线程控制相关的函数
目录 pthread_create -- 创建线程 参数 返回值 代码 -- 不传 args: 编译时带 -lpthread 运行结果 为什么输出混杂? 如何证明两个线程属于同一个进程? 如何证明是两个执行流? 什么是LWP? 代码 -- 传 args&a…...
基于quasar,只选择年度与月份的组件
为什么要做 quasar是个基于vue的强大的UI开发库,它提供了非常多的组件,比如日期选择。但是有些时候只需要选择到月份就可以了,quasar中没有,所以自己动手写了一个。因为对界面编程我不熟悉,所以,如果你有更…...
健康养生:拥抱生活的艺术
健康养生:拥抱生活的艺术 在快节奏的现代生活中,健康已成为我们最宝贵的财富。健康养生,不仅仅是一种生活方式的选择,更是一种对待生活的态度,它关乎于如何在日常中寻找到平衡,让身心得以滋养,…...
注意力机制+时空特征融合!组合模型集成学习预测!LSTM-Attention-Adaboost多变量时序预测
注意力机制时空特征融合!组合模型集成学习预测!LSTM-Attention-Adaboost多变量时序预测 目录 注意力机制时空特征融合!组合模型集成学习预测!LSTM-Attention-Adaboost多变量时序预测效果一览基本介绍程序设计参考资料 效果一览 基…...
uniapp 微信小程序 均分数据展示
效果图 数据展示,可自行搭配 html <view class"num-wrapper"><view class"num-item" click.stop"routerGo(跳转的地址)"><text class"num">¥{{ 要展示的数据 || 0}}</text><view…...
Nacos 3.0 考虑升级到 Spring Boot 3 + JDK 17 了!
Nacos 由阿里开源,是 Spring Cloud Alibaba 中的一个重要组件,主要用于发现、配置和管理微服务。 由于 Spring Boot 2 的维护已于近期停止,Nacos 团队考虑升级到 Spring Boot 3 JDK 17,目前正在征求意见和建议。 这其实是一件好…...
跟沐神学读论文-论文阅读管理
摘要 近期有读论文的需求,就需要去了解一下论文到底要怎么读,同一个系列之间的论文如何作整理和归纳,之前也有了解过市面上有成熟的论文阅读工具,但是对于学生党来讲没什么性价比,在B站上看到沐神有讲解他的思路Typor…...
Python 参数配置使用 XML 文件的教程 || Python打包 || 模型部署
当配置项存储在外部文件(如 XML、JSON)时,修改配置无需重新编译和发布代码。通过更新 XML 文件即可调整参数,无需更改源代码,从而提升开发效率和代码可维护性。 1. 为什么选择 XML 配置文件 XML 配置文件具有多种优点…...
[SV]如何在UVM环境中使用C Model
在UVM环境中使用C Memory 一、C语言实现Memory 1.1 代码说明 Memory 初始化: memory_init() 函数将内存空间初始化为 0,并初始化互斥锁。AXI 写操作 (axi_write): 检查地址范围是否合法。使用 memcpy 将数据从输入缓冲区写入模拟内存。使用互斥锁保证线程安全。AXI 读操作 …...
十大开源的Cursor AI替代方案
随着AI的兴起,所使用的工具也在不断进步。Cursor AI 作为一个强大的编码助手,已经成为开发人员不可或缺的工具。开源替代方案提供了透明性、个性化和成本效益。本文深入探讨了Cursor AI 的十大开源替代方案,这些方案将丰富您的编码体验&#…...
相机光学(四十六)——镜头马达(VCM)控制策略模式
One Step Mode、Linear Slope Control(LSC)和Acceleration Control是三种不同的控制模式,它们在控制策略和应用场景上有所区别。这些控制模式在VCM中的应用是为了提高其性能,减少振动,加快响应速度,并提高定…...
专业140+总分410+浙江大学842信号系统与数字电路考研经验浙大电子信息与通信工程,真题,大纲,参考书。
考研落幕,本人本中游211,如愿以偿考入浙江大学,专业课842信号系统与数字电路140,总分410,和考前多次模考预期差距不大(建议大家平时做好定期模考测试,直接从实战分数中,找到复习的脉…...
了解ARM的千兆以太网——RK3588
1. 简介 本文并不重点讲解调试内容,重点了解以太网在ARM设计中的框架以及在设备树以及驱动的一个整体框架。了解作为一个驱动开发人员当拿到一款未开发过的ARM板卡应该怎么去把网卡配置使用起来。 2. 基础知识介绍 在嵌入式ARM中实现以太网的解决方案通常有以下两种…...
JavaFX使用jfoenix的UI控件
jfoenix还是一个不错的样式,推荐使用,而且也可以支持scene builder中的拖拖拽拽 需要注意的是过高的javafx版本可能会使得某些样式或控件无法使用 比如alert控件,亲测javaFX 19版本可以正常使用 1.在pom.xml中引入依赖 GitHub地址https://gi…...
MentorBit红外驱动库:裸机与RTOS下的精准时序控制
1. MentorBit-DetectorIR 库概述MentorBit-DetectorIR 是一款专为 MentorBit 红外发射/接收模块设计的嵌入式底层驱动库,其核心定位并非通用红外协议栈(如 NEC、RC5 解码),而是面向硬件验证、模块级功能测试与快速原型开发的轻量级…...
Linux时钟子系统:CCF框架与驱动开发实践
1. Linux时钟子系统概述在嵌入式Linux系统中,时钟管理是驱动开发的基础环节之一。时钟子系统负责为整个系统提供精确的时序控制,从CPU主频到外设工作时钟,都需要通过时钟子系统进行管理和配置。Linux内核通过CCF(Common Clock Fra…...
Vibe Coding氛围编程系列:AI 模型 服务选择之哪个模型编程能力最强?
前言 2026年,AI辅助编程早已告别了“单行代码补全”的初级阶段,正式进入了Vibe Coding(氛围编程) 的全新时代。所谓氛围编程,核心是AI能完全贴合开发者的编码思路、节奏与工作流,实现无断点、沉浸式的流畅…...
突破模型部署瓶颈:TimesFM 2.5从500M到200M的压缩实践指南
突破模型部署瓶颈:TimesFM 2.5从500M到200M的压缩实践指南 【免费下载链接】timesfm TimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google Research for time-series forecasting. 项目地址: https://gitc…...
深入SimpleFOC源码:为什么校准编码器时要将磁场固定在270度?一个硬件角度的解读
深入SimpleFOC源码:为什么校准编码器时要将磁场固定在270度?一个硬件角度的解读 当你第一次接触SimpleFOC库的编码器校准代码时,可能会对其中将电角度锁定在270度(_3PI_2)的操作感到困惑。这个看似随意的"魔法数字…...
OrCAD Capture CIS DRC矩阵设置实战:如何自定义ERC检查规则
OrCAD Capture CIS DRC矩阵深度定制指南:从基础配置到高阶规则设计 1. 理解DRC矩阵的核心价值与应用场景 在复杂电路设计领域,标准化的设计规则检查(DRC)往往无法满足特殊元件的连接验证需求。OrCAD Capture CIS的ERC矩阵功能正是为解决这一痛点而生——…...
昇腾310B4 NPU实战:用MindX SDK给Unet模型推理加速,并与CPU/ONNX Runtime性能全面对比
昇腾310B4 NPU实战:Unet模型推理加速与多平台性能深度评测 边缘计算设备的选择往往需要在性能、功耗和成本之间寻找平衡点。当我们手头有一块搭载昇腾310B4 NPU的香橙派AIpro开发板时,如何充分发挥其8TOPS算力优势?本文将以医学图像分割中广泛…...
TouchGal终极指南:一站式Galgame社区如何让玩家找到纯净交流空间
TouchGal终极指南:一站式Galgame社区如何让玩家找到纯净交流空间 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next 你是否曾…...
非隔离电源环境下USB转串口调试的致命隐患:从爆炸事故看隔离串口的必要性
1. 当USB转串口遇上非隔离电源:一场隐藏的火花秀 前两天朋友公司发生了一起令人后怕的事故:一台咖啡机的WiFi模块调试过程中,USB转串口模块突然爆炸,伴随火光和巨响,设备当场报废。更可怕的是,这种事故绝非…...
React Scroll Parallax核心组件详解:Parallax、ParallaxBanner和ParallaxProvider
React Scroll Parallax核心组件详解:Parallax、ParallaxBanner和ParallaxProvider 【免费下载链接】react-scroll-parallax 🔮 React hooks and components to create parallax scroll effects for banners, images or any other DOM elements. 项目地…...
