HTTPS 证书:从平台申请到自助签发
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
相关要点
一、问题的实质:90 天一次的重复劳动以国内云平台的免费证书为例(腾讯云、阿里云等均提供此类产品),免费 DV 证书(域名验证型)有效期 90 天,到期不支持续费,只能重新申请。也就是说,一年至少四次重复同一套操作: 登录控制台 → 进入证书服务 → 申请免费证书 → 填写域名 → 选择验证方式 → 添加 TXT 记录 → 提交验证 → 等待签发 → 下载压缩包 → 解压 → 挑出对应服务器的文件 → 上传到服务器 → 修改配置 → 重载服务。 这套流程没有技术难度,成本在于重复性:每次都要人工介入,每次都不能遗漏。一旦遗漏,站点 HTTPS 即失效,访客会看到安全警告。 平台侧的免费证书还有若干结构性限制: 具体额度与域名后缀限制会随平台政策调整,以控制台当前公示为准。其中两项影响最大:
平台确实提供自动续期,但前提是域名接入平台的加速或负载均衡体系(修改 NS 或添加 CNAME)。若域名解析与站点都部署在自有服务器,这项能力无法使用。 需要说明的是,CA 本身并不是瓶颈。平台免费证书同样由公共 CA 签发,与自助签发得到的证书在信任级别上完全一致,差异只在流程的组织方式:前者把每一步封装为控制台操作,后者交由程序自动完成。 二、证书为什么是多个文件申请完成后解压,通常会看到四个名称相近的文件: 它们并不是四份彼此独立的内容,而是一条信任链加一把私钥。 信任链为什么分三层浏览器信任的是证书颁发机构(CA)。它内置一份根证书清单,随操作系统与浏览器分发。理论上,CA 可以只用根证书直接为站点签发。 但根证书的私钥一旦泄露,整个信任体系即失效。因此实际采用的是三层结构: 验证时由下向上回溯:叶证书的签发者是中间证书,中间证书的签发者是根证书,根证书在本机信任清单内,验证通过。 由此可以推出一条部署要求:服务器必须把叶证书与中间证书一并发送给客户端,否则信任链在中间断开。 四个文件的分工
结论:部署只需要 只部署 cert.pem 会发生什么Chrome 能正常打开。它在发现信任链不完整时,会依据证书中的 AIA 字段自行下载中间证书。 但 curl、Java、Node.js、微信内置浏览器、旧版 Android 不会执行这一步,直接报错: 这类故障的典型特征是:开发者在本地验证一切正常,用户端却报告证书错误。使用 反向的极端做法也不可取:不要把根证书拼入证书链。客户端本机已有根证书,额外传输只会增加握手开销。 部署后的自查若第二条命令输出 三、apex 与泛域名的覆盖边界常见问题:已申请 DNS 是一棵树:
泛域名中的
因此,若要让主域名与所有一级子域都启用 HTTPS,必须同时申请 平台免费证书不支持泛域名,五个子域就需要五张证书,每 90 天续期五次。 四、域名验证为什么不可省略签发证书前,CA 必须确认申请者确实控制该域名。否则任何人都可以为他人站点申请证书,进而实施中间人攻击。 三种验证方式的本质相同:将一个由 CA 指定的随机值,放置到只有域名控制者才能修改的位置。
泛域名只能使用 DNS-01 验证。 泛域名可能指向任意一台服务器,只有 DNS 记录能够统一证明域名归属,这是规范层面的约束。 五、自助签发的流程工具的职责即把上述步骤自动化,对应关系如下:
工具使用 Python 编写,除 第一步:启动Windows 双击 第二步:填写域名唯一需要注意的环节:
首次使用建议勾选「高级选项 → 使用测试环境」。测试环境签发的证书不被浏览器信任,但流程与正式环境完全一致,可先跑通全流程再切换,避免消耗正式环境的签发配额。 第三步:完成验证选择 DNS 验证后,界面会给出待添加的记录:
在域名解析控制台添加该记录,通常 1~10 分钟生效。工具提供「检测解析是否生效」功能,直接查询公共 DNS,避免反复提交验证。记录生效后点击「开始验证」,数秒内返回结果。
验证通过后的环节自动完成:生成密钥、提交 CSR、CA 签发、下载并拆分证书,通常在两三秒内结束。 六、部署与续期证书存放于 部署使用 IIS 需要 关于续期:90 天有效期由 CA 策略决定,与工具无关,Let's Encrypt 自推出起即为 90 天。并且这个期限在持续缩短——CA/Browser Forum 已通过分阶段缩减方案,公共证书最长有效期将由 398 天依次降至 200 天、100 天,最终降至 47 天。具体时间表会随规范修订调整,但方向明确:证书短期化不可逆,手工续期在若干年后将不再可行,自动化是必要条件而非效率优化。 工具无法取消续期这件事,但把一次续期的操作成本从一个完整的手工流程,压缩为重新运行一次、等待数十秒。 七、与平台申请的对比证书本身没有区别:平台免费证书与自助签发的证书同为公共 CA 签发的 DV 证书,浏览器信任级别一致。差别在流程: 需要补充的是:若域名已接入平台的加速或负载均衡,平台的自动续期与自动部署更为省事,此时并无必要改用本工具。自助签发的价值在于,站点与解析均在自有环境、无法使用平台托管能力时,仍能获得同等的自动化水平。 八、获取方式代码以 MIT 协议开源: 运行环境要求 Python 3.9 及以上。仓库内附有 证书基础文档,对 CSR、SAN、信任链、文件分工及 openssl 自查方法有更完整的说明。 最后一点与安全相关:私钥是站点凭证中价值最高的部分。 该工具全程在本机运行,私钥仅写入本地磁盘,不经过任何第三方服务器。使用其他在线工具生成证书时,需先确认其是否会留存或上传私钥。 阅读原文:点击这里 该文章在 2026/10/30 12:39:25 编辑过 |
关键字查询
相关文章
正在查询... |