结论:纯内网访问的系统不应该买公网 SSL 证书,因为公网 CA 根本签不出可用的证书;正确做法是「公网域名 + DNS-01 签发的免费证书」或「自建 CA」,两者的证书成本都是 0 元。只有当访问链路经过公网、或需要被第三方系统默认信任时,才必须上公网证书。
内网系统要不要申请公网 SSL 证书?先看两个判定条件
结论:只要满足「域名不在公网 DNS 解析」或「只用内网 IP 访问」任意一条,公网 CA 就签不出证书,花钱也买不到。
公网 CA(证书颁发机构,负责签发浏览器默认信任的 TLS 证书)在签发 DV 证书前必须验证你对域名的控制权,主流验证方式只有两种:HTTP-01 要求公网 80/443 端口能访问到 /.well-known/acme-challenge/ 下的验证文件;DNS-01 要求在公网 DNS 里添加一条指定的 TXT 记录。
纯内网域名(如 erp.corp.lan、oa.internal)不在公网 DNS 里,两条路都走不通,CA 会直接拒绝签发。用内网 IP 申请更行不通:主流 CA 自 2015 年起已停止签发 IP 证书,Let's Encrypt 至今也不签发 IP SAN,192.168.x.x、10.x.x.x 只能自签。
内网系统怎么拿到浏览器信任的 HTTPS?
结论:最省事的组合是「公网注册域名 + 内网 A 记录 + DNS-01 验证」,证书免费、浏览器天然信任,代价是维护一套内外有别的分裂 DNS(split-horizon DNS,同一域名在内网和公网解析到不同地址)。
分三步落地:第一,注册一个公网域名,几十元一年;第二,在内网 DNS 上把 oa.example.com 解析到内网 IP,公网 DNS 不配置这条 A 记录;第三,用 acme.sh 或 certbot 的 DNS 模式申请证书,靠公网 DNS 的 TXT 记录完成验证。拿到的是标准 90 天 Let's Encrypt 证书,Chrome、Safari、手机 App、Postman 全部直接信任,一台客户端都不用配置根证书。
这条路的限制是内网机器必须能访问公网 DNS 和 ACME 服务端(不通就配 HTTP 代理),自动续期要配好定时任务;如果内网是物理隔离的,DNS-01 同样走不通,只能回到自建 CA。
自建 CA 和公网证书怎么选?
结论:完全隔离网、客户端数量可控(几百台以内)选自建 CA;有外网出口、客户端类型杂(移动端、访客、第三方系统)选公网域名加免费证书。
自建 CA 的工具有 mkcert(本地开发测试)、step-ca(企业级,原生支持 ACME 协议)、Windows AD 证书服务。签发零成本、内网域名随便用,但每台客户端都要装根证书:Windows 走组策略 GPO 下发,macOS/iOS 走 MDM,Linux 执行 update-ca-certificates。特别注意 Android 7.0 起 App 默认不信任用户手动安装的 CA,必须在 network_security_config 里显式声明,否则 App 内 HTTPS 请求照样报错。
商业 OV/EV 证书(几千到几万元一年)的唯一价值是对外展示企业实名身份,纯内网系统没有这个需求,不必采购。
哪些情况必须上公网证书?
结论:只要访问链路经过公网、或需要被第三方系统默认校验证书链,就必须用公网 CA 签发的证书。
典型场景有四类:一是内网系统通过端口映射或 Nginx 反代暴露到公网;二是对接微信公众号、小程序、支付回调,平台侧强制要求 HTTPS 且证书链可校验;三是给外部客户、供应商开的门户;四是对接第三方 API 时对方主动校验证书链。这几种情况用自签证书会直接抛 unable to verify the first certificate,业务跑不通。
内网 HTTPS 还有哪些容易踩的坑?
结论:证书有效期正在快速缩短,内网系统必须做自动续期,否则一定会碰上「某天早上集体打不开」。
CA/B 论坛已通过决议分阶段缩短 TLS 证书最长有效期:2026 年 3 月 15 日起 200 天,2027 年 3 月 15 日起 100 天,2029 年 3 月 15 日起 47 天。靠人工换证书的内网系统撑不过这个节奏,务必用 acme.sh --install-cert 配好 Nginx reload 钩子。
另外两点:给内网域名开了 HSTS 之后,证书一旦失效浏览器不再给「继续访问」的选项,会直接锁死,上线前先确认续期链路稳定;自建 CA 的根证书有效期建议设 5 年以内并预留轮换预案,根证书一过期,所有已签发的内网证书同时失效。这类踩坑经验在 GJ 站长论坛(www.gj0.com)的运维交流里很常见,发帖前记得先上传头像解锁发帖权限。
总结一下:判定标准就一条——访问入口是否暴露在公网、是否需要第三方默认信任。纯内网用公网域名加 DNS-01 免费证书或自建 CA,成本 0 元;对外暴露才买公网证书。无论选哪条路,自动续期和根证书轮换都要提前设计好。