Agate虚拟主机配置:多域名站点部署与证书管理技巧
Agate虚拟主机配置多域名站点部署与证书管理技巧【免费下载链接】agateVery simple server for the Gemini hypertext protocol项目地址: https://gitcode.com/gh_mirrors/aga/agateAgate作为一款轻量级Gemini协议服务器支持通过虚拟主机配置实现多域名站点部署并提供灵活的证书管理功能。本文将详细介绍如何在Agate中配置虚拟主机、管理多域名证书以及优化站点访问体验的实用技巧。快速上手虚拟主机基础配置启用多域名支持的核心步骤要在Agate中启用虚拟主机功能只需在启动命令中指定多个--hostname参数agate --content ./content \ --hostname example.com \ --hostname example.org \ --addr 0.0.0.0:1965当指定多个主机名后Agate会自动启用虚拟主机模式。此时服务器会在内容根目录下创建与域名对应的子目录例如./content/example.com和./content/example.org分别存储不同域名的站点内容。目录结构规范虚拟主机模式下的推荐目录结构./content/ ├── example.com/ │ ├── index.gmi │ └── posts/ └── example.org/ ├── index.gmi └── about.gmi当访问gemini://example.com/posts/hello.gmi时Agate会自动定位到./content/example.com/posts/hello.gmi文件。如果请求的路径是目录服务器会默认查找该目录下的index.gmi文件。证书管理从自动生成到手动配置自动证书生成机制Agate采用Gemini协议推荐的TOFUTrust on First Use原则支持自动为指定主机名生成自签名证书首次启动时若.certificates目录不存在或没有对应域名的证书Agate会自动生成有效期至4096年的ECDSA证书生成的证书包含正确的Subject Alternative Name确保客户端验证通过证书和私钥默认存储在.certificates目录采用DER格式存储手动配置多域名证书对于需要使用自定义证书的场景可通过以下步骤配置创建证书目录结构.certificates/ ├── cert.der # 默认证书可选 ├── key.der # 默认私钥可选 ├── example.com/ │ ├── cert.der │ └── key.der └── example.org/ ├── cert.der └── key.der证书文件要求证书必须是X.509格式的DER文件cert.der私钥必须是RSA、ECDSA或Ed25519格式的DER文件key.der证书必须包含对应域名的Subject Alternative NamePEM格式转换为DER如果已有PEM格式证书可使用OpenSSL转换# 转换证书 openssl x509 -in cert.pem -out cert.der -outform der # 转换私钥 openssl pkcs8 -topk8 -inform PEM -outform DER -in key.pem -out key.der -nocrypt高级配置优化多站点管理集中配置模式Central Config通过-C或--central-conf标志启用集中配置模式所有设置将统一由内容根目录下的.meta文件管理agate --content ./content \ --hostname example.com \ --hostname example.org \ -C集中配置文件./content/.meta示例# 设置默认MIME类型 [mime] .gmitext/gemini; charsetutf-8 .txttext/plain; charsetutf-8 # 自定义目录列表样式 directory-listing-stylegemini directory-listing-preamble./preamble.gmi # 设置缓存控制 cache-controlpublic, max-age3600证书目录自定义使用--certs参数指定自定义证书目录位置agate --content ./content \ --hostname example.com \ --certs /etc/agate/certificates \ --addr 0.0.0.0:1965这在服务器迁移或多实例部署时特别有用确保证书文件集中管理且不会意外暴露。常见问题与解决方案证书不匹配错误若客户端提示证书与域名不匹配可能原因证书缺少Subject Alternative Name字段证书文件放置位置错误域名大小写不匹配Agate对域名进行小写处理解决方法将旧证书移至.certificates目录顶层或重新生成包含正确SAN的证书。虚拟主机不生效当虚拟主机配置未按预期工作时检查是否指定了多个--hostname参数内容目录下是否创建了与域名对应的子目录启动命令中是否使用了--skip-port-check当服务器在代理后运行时证书更新与重载Agate在启动时加载证书证书更新后需重启服务器才能生效# 停止当前实例 pkill agate # 启动更新后的实例 agate --content ./content --hostname example.com --hostname example.org总结Agate通过--hostname参数和目录结构实现了轻量级虚拟主机功能结合灵活的证书管理机制为Gemini协议多站点部署提供了简单而强大的解决方案。无论是个人博客还是小型社区都能通过本文介绍的方法快速搭建安全、高效的Gemini服务。通过合理配置证书目录结构和利用集中配置模式可以显著简化多域名站点的管理复杂度同时遵循Gemini协议的TOFU原则确保通信安全与用户体验的平衡。【免费下载链接】agateVery simple server for the Gemini hypertext protocol项目地址: https://gitcode.com/gh_mirrors/aga/agate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

免费.brd文件查看器OpenBoardView:硬件工程师的电路板分析利器

免费.brd文件查看器OpenBoardView:硬件工程师的电路板分析利器

免费.brd文件查看器OpenBoardView:硬件工程师的电路板分析利器 【免费下载链接】OpenBoardView View .brd files 项目地址: https://gitcode.com/gh_mirrors/op/OpenBoardView 你是否曾在面对复杂的电路板设计文件时感到无从下手?昂贵的商业软件让…

2026/10/14 15:55:45 阅读更多 →
WaveDrom数字时序图绘制终极指南:从零开始掌握专业波形设计

WaveDrom数字时序图绘制终极指南:从零开始掌握专业波形设计

WaveDrom数字时序图绘制终极指南:从零开始掌握专业波形设计 【免费下载链接】wavedrom :ocean: Digital timing diagram rendering engine 项目地址: https://gitcode.com/gh_mirrors/wa/wavedrom 想象一下,你正在设计一个复杂的数字电路&#xf…

2026/10/4 16:30:12 阅读更多 →
123.BGP的五种报文的抓包

123.BGP的五种报文的抓包

BGP报文(五种) 报文 说明 类型 open 负责和对等体建立邻居关系。 1 Update 该消息被用来在BGP对等体之间传递增量路由信息。 2 Keep-Alive 该消息在对等体之间周期性地发送,用以维护连接。 3 Notification 当BGP Speaker检测到错误的时候,就该发送该消息给对等体。 4 Route-r…

2026/10/16 17:59:15 阅读更多 →

最新新闻

AI取代软件工程师?顶尖观点与程序员转型实操指南

AI取代软件工程师?顶尖观点与程序员转型实操指南

1. AI 真的会抢走软件工程师的饭碗吗最近这个标题在技术圈子里传得很凶,不少人在转。说实话,我第一眼看到的时候,正在加班调一个多线程的死锁问题,当时心里还挺不是滋味的——我们在这儿焦头烂额,外面在讨论我们会不会…

2026/10/17 19:31:43 阅读更多 →
若依Vue3登录密码RSA加密改造与记住密码修复实践

若依Vue3登录密码RSA加密改造与记住密码修复实践

接手若依 Vue3 前端分离版(3.8.8)项目做安全加固时,需求其实很朴素:登录密码不能在请求里裸奔。技术选型也没什么好纠结的,前端集成 jsencrypt,后端下发 RSA 公钥,前端加密密码后再提交&#xf…

2026/10/17 19:31:43 阅读更多 →
RAG知识库落地:PDF解析三层实战与踩坑指南

RAG知识库落地:PDF解析三层实战与踩坑指南

做RAG知识库这一年多,我最大的感受是:最容易被低估的环节不是向量模型,也不是Prompt,而是文档解析,特别是PDF解析。PDF这玩意看起来就是“能复制文字的文档”,可真要把它丢进RAG管线里,问题立刻…

2026/10/17 19:31:43 阅读更多 →
案卷查阅系统数字化升级:Vue+Node.js+小程序全栈开发实战

案卷查阅系统数字化升级:Vue+Node.js+小程序全栈开发实战

法院信息化这几年推进得很快,但案卷查阅这个环节,很多地方还停留在“跑腿、填表、等电话通知”的阶段。律师想阅卷,得先带着所函、委托书跑到法院档案窗口排队,材料不齐还得再跑一趟;审批人整天在纸质单子和系统之间来…

2026/10/17 19:31:43 阅读更多 →
href占位链接写法与调试全解析:从#到javascript:void(0)的坑

href占位链接写法与调试全解析:从#到javascript:void(0)的坑

前阵子我在本地起一个静态页面调试交互&#xff0c;偷懒在按钮位置上写了一个<a href"#">测试链接</a>&#xff0c;结果从点击事件、路由跳转到控制台报错&#xff0c;整整折腾了一个下午。后来我认真把“临时链接”这件事从头捋了一遍&#xff0c;才发现…

2026/10/17 19:31:43 阅读更多 →
MATLAB实现量子近似优化算法:组合优化问题求解与避坑指南

MATLAB实现量子近似优化算法:组合优化问题求解与避坑指南

简介&#xff1a;一份面向 MATLAB 用户的量子近似优化算法系统讲解 PDF&#xff0c;从组合优化问题定义、旅行商、背包、图着色等模型入手&#xff0c;逐步展开量子计算基础、问题哈密顿量与驱动哈密顿量的构建、参数优化与测量流程。内容以最大割问题作为完整案例&#xff0c;…

2026/10/17 19:30:42 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介&#xff1a;《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南&#xff0c;重点围绕V3与R1两款模型的能力差异与适用场景展开&#xff0c;帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件&#xff0c;压缩包大小约311KB&#xff0c;篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介&#xff1a;这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档&#xff0c;共收录两百余条可直接套用的润色指令&#xff0c;涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度&#xff0c;并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介&#xff1a;本资源是一份基于OpenCV的本科课程设计完整报告&#xff0c;面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生&#xff0c;解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →