首页/新闻资讯/正文详情

nginx-ui 开发环境中的 Pebble 本地 ACME 测试证书体系:certs/localhost 目录全解

发布时间:2026/9/23 18:43:16 来源:云帆数科 栏目:资讯中心
nginx-ui 开发环境中的 Pebble 本地 ACME 测试证书体系:certs/localhost 目录全解
nginx-ui 开发环境中的 Pebble 本地 ACME 测试证书体系certs/localhost 目录全解【免费下载链接】nginx-uiYet another WebUI for Nginx项目地址: https://gitcode.com/gh_mirrors/ngi/nginx-ui导读本文围绕 nginx-ui 仓库.devcontainer/pebble-test/certs/localhost目录的说明文档完整讲解该目录下cert.pem与key.pem的用途、它们与 Pebble本地 ACME 测试服务器及 nginx-ui 证书签发流程的关系并给出如何让测试代码信任 Pebble 根 CA、如何用minica重新生成整套测试证书的可执行方案。读完本文你将理解 nginx-ui 开发容器中零成本签发测试证书的完整链路并能在自己的测试环境中复现这一套证书体系。目录定位一个目录、一对证书、一项职责certs/localhost目录极其精简仅包含三个文件README.md说明文档即本文的原始依据cert.pemPebble HTTPS 服务器使用的终端实体证书叶子证书key.pem与该证书配对的私钥。在 docker-compose.yml 中Pebble 容器通过 volume 挂载将整个.devcontainer/pebble-test目录暴露为容器内的/test随后 pebble-config.json 通过certificate与privateKey两个配置项指向certificate: /test/certs/localhost/cert.pem, privateKey: /test/certs/localhost/key.pem,也就是说这一对文件是Pebble 自己对外提供 HTTPS ACME API 时使用的 TLS 证书对应端口 14000而不是 Pebble 签发给测试方应用的证书——后者由certs/根目录的pebble.minica.pemCA 签发二者职责不同阅读时注意区分。证书的 SAN 设计为什么是 127.0.0.1 / localhost / pebble根据 certs/localhost/README.md 的说明这对证书包含IP SAN127.0.0.1DNS SANlocalhost、pebble。这个 SAN 组合与 nginx-ui 的开发容器网络拓扑严格对应localhost与127.0.0.1当开发者在本机浏览器或本机进程访问https://localhost:14000/dir时Pebble 返回的证书 SAN 与主机名匹配TLS 握手不会出现主机名不匹配错误pebble这是 docker-compose 网络中 Pebble 服务的服务名见 docker-compose.yml 中pebble:服务定义。容器内的其他服务如 nginx-ui 主容器通过https://pebble:14000/dir访问 ACME 目录时pebble这个 DNS SAN 恰好覆盖了该主机名。nginx-ui 前端也内置了对这一测试端点的支持在 app/src/constants/acme.ts 的CA_SERVER_OPTIONS列表中Pebble Local Test一档直接指向https://localhost:14000/dir与 Pebble 的目录地址一一对应便于开发者在 nginx-ui 的证书申请界面中一键选用本地测试 CA。信任 Pebble 根 CA让测试代码通过 TLS 校验certs/localhost的叶子证书由 certs/ 根目录中的 CA 证书pebble.minica.pem签发。因此要让自己的测试代码如调用 Pebble ACME API 的客户端、nginx-ui 的证书签发模块在访问 Pebble 时不做 HTTPS 报错必须显式信任该 CA配置 ACME 客户端使其运行时使用的根 CA 列表包含pebble.minica.pem文件。绝大多数 ACME 客户端如 Go 的golang.org/x/crypto/acme、lego、certbot 等都提供自定义根 CA或自定义 CA 文件的运行时选项把pebble.minica.pem加进去即可不要把它加入系统信任库。安全红线Pebble CA 私钥是公开的certs/README.md 给出了极其明确的警告不要把pebble.minica.pem加入系统信任库不要在生产代码或生产环境中信任它原因CA 私钥pebble.minica.key.pem是公开的任何拿到它的人都能签发出被信任了 Pebble CA 的系统所信任的任意证书。这条红线同样适用于certs/localhost下的key.pem它同样不是机密只服务于本地开发/CI 测试环境任何将这些文件用于生产信任链的做法都属于安全事故。重新生成整套测试证书minica 命令详解当需要重建证书例如 SAN 变更、证书过期、或换一台机器重新初始化开发环境时certs/README.md 给出了标准做法在.devcontainer/pebble-test/certs/目录下运行minicaminica -ca-cert pebble.minica.pem \ -ca-key pebble.minica.key.pem \ -domains localhost,pebble \ -ip-addresses 127.0.0.1参数含义逐一说明参数含义-ca-cert pebble.minica.pem指定用于签发子证书的 CA 证书文件-ca-key pebble.minica.key.pem指定 CA 私钥minica用它对新证书签名-domains localhost,pebble生成两个 DNS SANlocalhost与pebble-ip-addresses 127.0.0.1生成一个 IP SAN127.0.0.1命令完成后minica会在当前目录下生成localhost/子目录其中即包含新的cert.pem与key.pem覆盖式重建certs/localhost目录中的文件对应minica的默认输出行为按-domains的第一个域名建立输出目录。需要先安装 MiniCA 工具go install github.com/jsha/minicalatest一类方式再于该目录执行命令。完整上下文证书如何嵌入 nginx-ui 的本地 ACME 测试环境将上面的证书体系放回开发容器的整体拓扑中可以更清楚地看到它的位置docker-compose.yml 启动pebble服务ghcr.io/letsencrypt/pebble:latest启动参数-config /test/config/pebble-config.json -strict -dnsserver challtestsrv:8053并暴露14000HTTPS ACME API与15000HTTPS 管理 API两个端口Pebble 根据 pebble-config.json 加载certs/localhost/cert.pem与key.pem作为自身 TLS 证书配置中还包含 HTTP-01/TLS-ALPN-01 校验端口httpPort: 5002、tlsPort: 5001、retryAfter节流参数以及证书 profile 有效期等配套的 pebble-config-external-account-bindings.json 则演示了开启externalAccountBindingRequired: true、配置 EAB HMAC 密钥的形态用于测试需要外部账号绑定EAB的 CA 流程nginx-ui 主容器通过环境变量NGINX_UI_CERT_CA_DIRhttps://pebble:14000/dir见 docker-compose.yml将 ACME 目录指向容器网络内的 Pebble从而实现开发环境下真实走一遍申请证书 → 校验 → 签发 → 落盘的完整链路而无需触碰真实 CA。从源码结构可以推断nginx-ui 的证书签发模块api/certificate/issue.go、internal/cert/在开发模式下即面向此类本地 ACME 目录工作certs/localhost提供的正是这条链路最底层的Pebble 自身可信身份支撑。这也解释了为何该 README 虽短却与容器编排、Pebble 配置、前端 CA 选项列表三处代码遥相呼应。小结certs/localhost目录虽小却是 nginx-ui 本地 ACME 测试环境的信任基石cert.pem/key.pem为 Pebble 的 HTTPS ACME API 提供身份127.0.0.1、localhost、pebble三组 SAN 分别覆盖本机访问与容器网络内访问两种场景配合根目录的pebble.minica.pem做客户端信任即可在完全离线的环境中完成证书签发全流程测试。需要重建时用minica在.devcontainer/pebble-test/certs/下按上文命令重新生成即可——务必牢记这一切仅限本地与 CI 测试Pebble 的 CA 与私钥永远不能进入生产信任链。【免费下载链接】nginx-uiYet another WebUI for Nginx项目地址: https://gitcode.com/gh_mirrors/ngi/nginx-ui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

前馈神经网络实现下一篮子推荐:轻量、可解释、可上线
前馈神经网络实现下一篮子推荐:轻量、可解释、可上线

简介:本资源是一份面向数据科学初学者与机器学习实践者的「基于神经网络的下一篮子推荐」Python项目实战包,聚焦电商场景中用户短期购物意图预测这一核心问题,适用于推荐系统入门、深度学习课程设计及Kaggle类项目复现。压缩包共14个文件&… · 2026/9/23 18:43:10

高分遥感语义分割实战:PyTorch实现地物分类与面积估算全流程
高分遥感语义分割实战:PyTorch实现地物分类与面积估算全流程

简介:这是一份面向遥感与计算机视觉学习者的项目实践资源,以PyTorch为基础实现高分遥感影像语义分割,解决地物分类任务。资源基于GF2影像样本数据,覆盖模型设计、数据加载、训练验证与推理预测全流程,并重点展开膨胀预… · 2026/9/23 18:43:10

思科综合实验:三层交换机+VLAN+DHCP+RIPv2配置与排错详解
思科综合实验:三层交换机+VLAN+DHCP+RIPv2配置与排错详解

简介:这是一份计算机网络思科综合性实验报告,完整记录校园网通信环境从拓扑设计到设备配置的全过程,面向网络工程、计算机相关专业学生及需要完成同类实验的初学者。报告围绕三层交换机、路由器、VLAN划分、DHCP服务、子网规划及RIPv2路由协议… · 2026/9/23 18:43:10

4元阵列LMS波束成型MATLAB仿真:低旁瓣设计从入门到实战
4元阵列LMS波束成型MATLAB仿真:低旁瓣设计从入门到实战

简介:一个基于LMS(最小均方)算法的4元阵列波束成形MATLAB脚本,面向无线通信、雷达与信号处理方向的学习者,演示多天线系统如何通过迭代调整阵元权重,实现高增益、低旁瓣的定向波束。压缩包仅含1个m文件&… · 2026/9/23 19:23:04

互联网监测原理拆解:3个避坑指南助你面试不挂
互联网监测原理拆解:3个避坑指南助你面试不挂

互联网监测原理拆解:3个避坑指南助你面试不挂 面试被问到“互联网监测”的具体实现逻辑,是不是脑子一片空白?明明平时写代码都在做数据抓取和分析,但一提到底层的流量捕获、协议解析和异常告警,就答不上来?别慌,今天这篇避坑指南就是为你准备的。… · 2026/9/23 19:23:04

基于WEB的个人知识管理系统架构拆解:Nginx+MongoDB部署实战
基于WEB的个人知识管理系统架构拆解:Nginx+MongoDB部署实战

简介:基于WEB的个人知识管理系统.zip 是一份面向毕业设计学生及Web开发初学者的完整项目源码包,围绕知识采集、分类、存储、检索与共享等核心模块展开,适合用于课程设计、毕设参考或二次开发练习。压缩包共505个文件,大小21.42MB&… · 2026/9/23 19:23:04

移动端UI适配:BaseContainer组件与CSS变量实践
移动端UI适配:BaseContainer组件与CSS变量实践

1. 移动端二开中的UI适配痛点解析在CRMEB多商户系统的移动端二次开发过程中,UI适配问题往往成为最消耗开发时间的"隐形杀手"。不同于PC端相对统一的显示环境,移动设备呈现出令人头疼的碎片化特征:全面屏适配难题:iPhone… · 2026/9/23 19:22:58

中小冷库的隐形分水岭:数字化和电力
中小冷库的隐形分水岭:数字化和电力

一、价格相差五六倍的冷库,差在哪郑州的冷库市场,正在经历一轮明显的价格分化。一边是远郊的个人冷库,租金已经低到每天每平方米0.34到0.51元;另一边,正规冷链园区仍在每平方米2.2到3元的区间。同样是一间冷库&#xf… · 2026/9/23 19:22:58

QNX微内核RTOS入门:VirtualBox虚拟机安装与核心机制解析
QNX微内核RTOS入门:VirtualBox虚拟机安装与核心机制解析

1. QNX系统到底是什么,为什么值得花时间折腾第一次听到QNX这个名字,很多人会以为是某个小众Linux发行版,或者某个国产操作系统。其实都不是。QNX是一套微内核架构的实时操作系统(RTOS),最早由加拿大QNX Sof… · 2026/9/23 19:22:58

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码