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

火山引擎配置使用acme

火山引擎配置使用acme

基于 acme.sh 与火山引擎 API 自动化签发 SSL 通配符证书

核心痛点

acme.sh 官方原生暂未内置火山引擎(VolcEngine)的 DNS 供应商插件。若要通过 DNS 验证(DNS-01挑战)申请泛域名/通配符证书,我们需要引入第三方的 DNS API 扩展脚本。

本文将基于开源项目 mitkimi/acmesh_volcengine_api,完整演示从安装、配置到自动化部署的全流程。

环境准备与 acme.sh 安装

首先安装 acme.sh。建议绑定您的常用邮箱,以便在证书即将过期且自动续期失败时收到 Let's Encrypt 的邮件提醒。

Bash

# 方案 A:指定邮箱安装(推荐)
curl https://get.acme.sh | sh -s email=your_email@example.com# 方案 B:匿名安装
curl https://get.acme.sh | sh

安装完成后,使环境变量生效并验证版本:

source ~/.bashrc
acme.sh --version

配置火山引擎 API 密钥与插件

3.1 获取 API 凭证

登录火山引擎控制台,前往 访问控制 -> API访问密钥 -> 密钥列表 -> 新建密钥,获取 AccessKey IDSecret AccessKey

3.2 注入环境变量

直接在当前 Shell 终端中执行以下命令(无需写入 .bashrc)。

安全提示acme.sh 在首次签发成功后,会将这两个密钥自动加密持久化至 ~/.acme.sh/account.conf 中。未来 crontab 定时任务自动续期时会自动调用该配置,因此无需在全局配置文件中常驻明文密钥。

export VOLCENGINE_ACCESS_KEY_ID="您的AccessKeyID"
export VOLCENGINE_SECRET_ACCESS_KEY="您的SecretAccessKey"

3.3 下载第三方火山引擎 DNS 插件

下载由作者 mitkimi 编写的外部 DNS 脚本,并放置到 acme.sh 的插件目录中:

Bash

# 下载原始脚本(注意:必须使用 raw 域名链接)
curl -sSfL https://raw.githubusercontent.com/mitkimi/acmesh_volcengine_api/main/dns_volcengine.sh \> ~/.acme.sh/dnsapi/dns_volcengine.sh# 赋予可执行权限
chmod +x ~/.acme.sh/dnsapi/dns_volcengine.sh

申请 SSL 证书

执行以下命令开始申请证书。此处以 liangzhantu.fun 为例,同时申请主域名与泛域名。

Bash

# 首次申请证书
acme.sh --issue --dns dns_volcengine -d yourdomain.com -d '*.yourdomain.com'# 如果需要强制重新签发或调试,可追加 --force 和 --debug 参数
acme.sh --issue --dns dns_volcengine -d yourdomain.com -d '*.yourdomain.com' --force --debug

提取证书与自动化运维(以 Nginx 容器为例)

切勿直接将 Nginx 的配置文件指向 ~/.acme.sh/ 目录下的原始文件,该目录结构内部可能会发生变动。

正确的做法是使用 --install-cert 命令将证书复制到指定的生产目录,并通过 --reloadcmd 设定自动化重载钩子。

Bash

# 创建证书存储目录(此处以 /etc/nginx/ssl/ 为例,可根据实际情况修改)
mkdir -p /etc/nginx/ssl/yourdomain.com/# 提取证书并配置容器重载
acme.sh --install-cert -d yourdomain.com --ecc \--key-file       /etc/nginx/ssl/yourdomain.com/yourdomain.com.key \--fullchain-file /etc/nginx/ssl/yourdomain.com/yourdomain.com.pem \--reloadcmd      "docker exec <nginx-name> nginx -s reload"

关于未来的自动化续期

acme.sh 在安装时已自动向系统的 crontab 注入了定时任务。

你可以通过以下命令查看:

crontab -l

输出中会包含一条类似以下的内容:

56 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

自动化续期的运行逻辑:

  1. 每晚定时任务触发。

  2. acme.sh 检查证书,若证书有效期少于 30 天,则触发续期。

  3. acme.sh 自动读取 ~/.acme.sh/account.conf 中保存的火山引擎密钥,通过 API 自动到域名解析中添加 TXT 记录。

  4. 验证通过后,新证书生成。

  5. 自动执行 --reloadcmd 绑定的命令(例如 docker exec ... nginx -s reload),整个过程无感、零人工干预。

http://www.rkmt.cn/news/1488695.html

相关文章:

  • 终极指南:如何安全使用ModTheSpire为《杀戮尖塔》安装和管理模组
  • 汽车以太网PHY芯片TJA1101B硬件设计与链路启动实战指南
  • 3步轻松解锁:用caj2pdf将知网CAJ文献转为可搜索PDF
  • 平湖海宁嘉善黄金回收实测:当湖街道、海洲街道、罗星街道九家门店谁在认真做生意? - 久盈
  • ThinkPad双风扇控制终极指南:TPFanControl2完全配置手册
  • 寄大件上门取货哪家最便宜?试试“寄半折”比价 - 快递物流资讯
  • 汽车ADAS毫米波雷达电源设计:基于NXP PMIC的AWR2243供电方案详解
  • 告别Hello World:用ObjectARX Wizards模板快速给你的AutoCAD 2021插件加个MFC界面
  • 我为什么决定系统学 AI Agent
  • RAGent:基于LangGraph的三代理RAG架构实现PDF精准问答
  • 种草|深圳周边口碑好的马口铁盒加工厂,这家值得了解 - 变量人生001
  • GPT-4的1.8万亿参数与2%激活:MoE稀疏性真相解析
  • 从四个参数学习 Chord Edit
  • 5分钟实现通达信缠论自动化:告别手动画线,让AI帮你分析股票走势
  • 跟着 MDN 学JavaScript day_12:实战挑战——构建交互式笑话生成器
  • Agent记忆系统:基于LangChain的Memory开发实战
  • pyltp加载自定义词典踩坑实录:解决专业术语(如‘亚硝酸盐’)分词不准的问题
  • 航班延误预测:面向运控决策的实时风险评估系统设计
  • 深耕金属包装二十载:东莞万鑫隆的全链路马口铁盒定制之道 - 变量人生001
  • m4s-converter:如何永久保存B站视频的完整指南
  • 终极游戏库管理神器:Playnite一站式整合20+平台与模拟器游戏
  • 计算机小程序毕设实战-基于SSM的图书馆自习室座位预约小程序基于ssm+微信小程序的自习室预约小程序的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • AutoCAD Plant 3D自定义元件避坑指南:手把手教你调试Python脚本参数(以水平四通为例)
  • [20260604]简单测试获取sid的最佳方法.txt
  • Umi-OCR插件完全指南:7款免费OCR引擎的终极安装与使用教程
  • macOS 命令行自动投稿 B 站:biliup-rs 安装 + 一键投稿脚本
  • 国产MCU替代实战:华大HC32F460串口DMA+超时中断,如何搞定不定长数据帧?
  • RTL8153B-VB-CG、集成 LDO / 开关稳压器,支持 EEE 节能与双唤醒功能的网口 IC
  • JAVA算法刷题---DAY2 牛牛的快递、最小花费爬楼梯、数组中两个字符串的最小距离
  • 航空危险品运输全流程智能监管平台技术方案