如果你的业务跑在一台只有公网IP的服务器上,没有域名,或者域名还在备案流程里,而客户和接口调用方又要求尽快把服务升级成HTTPS,那你大概率遇到过这个场景:自签证书导进去,Chrome照样红屏;买域名证书又签不到IP上;找国际CA申请公网IP证书,材料递上去之后验证环节迟迟没有下文。我上个月刚给一台上海机房的服务器办完一张公网IP证书,整个过程走的是纯国内验证:在线提交、人工审核、端口放校验文件、签发、部署,全程都在国内完成,最终把 https://IP 的证书告警彻底消掉了。这篇文章把我这次操作的全过程、配置命令和踩过的坑整理出来,给同样需要给IP地址签正规证书的人当参考。
1. 为什么公网IP证书比域名证书更“挑机构”
1.1 IP直连的业务场景一直没有消失
很多人觉得,互联网上访问服务都用域名,证书自然也只需要签域名。但实际跑到生产环境里会发现,IP直连的场景远比想象中多:企业之间接口对接,对方只给了你一个固定IP,没有配套域名;设备管理平台、视频监控、门禁网关,设备端根本不支持域名解析;测试环境、预发布环境临时用IP顶上;还有一些内部系统从安全角度的确不允许暴露域名信息,直接走IP。我在这次项目中处理的就是一个供应链管理平台的API网关,对方要求必须用正规CA签发的证书,不能自签,否则他们风控一关就过不去。
域名证书不能用在IP上的原因很简单:证书签发的核心逻辑是“验证申请人拥有这个地址的所有权”,域名可以靠DNS解析来证明,而IP地址没有DNS,CA需要一套独立的验证机制,IPC之外还要确认你对IP的实际控制权。所以公网IP证书本质上是一种特殊的SSL证书,它的常用名称(CN)和 SAN 条目里放的是IP地址而不是域名。证书行业把这类证书叫“IP证书”或者“IP SAN证书”,它和域名证书一样,可以由受信任的CA签发,让浏览器正常信任,只是签发的条件和验证路径完全不同。
1.2 浏览器对IP证书的信任基线
可能是被早期各种滥用吓怕了,主流浏览器对IP证书的信任要求卡得很严格。按照CA/Browser Forum的基线要求,CA要签发IP证书,必须做到几件事:申请者必须向CA证明自己对该公网IP地址的控制权;证书里必须包含IP地址的subjectAltName(SAN)条目,且SAN里的IP必须和申请验证的一致;证书有效期最长只能到398天;CA不得给保留IP、内网IP、多播地址这类非公网IP签发证书。
这些都意味着,想靠自签证书躲掉浏览器报警是行不通的,因为浏览器判断的是“这张证书是否由受信任的根证书签发”,而不是“证书里的IP对不对”。哪怕你把自签证书的CN和SAN都写成IP,只要根证书不在系统信任列表里,Chrome和Edge依然会给出“您的连接不是私密连接”的红色拦截页。只有CA签发的IP证书,才能让现代浏览器把IP访问当成一个合法站点来对待。
1.3 纯国内验证到底是什么意思
“纯国内验证”这个说法,听起来有点云里雾里,其实落到操作层面就三点:
- CA的验证服务器在国内,校验端口时直接访问你的IP,不用经过跨境链路。
- 申请材料、人工复核、电话确认都在国内完成,语言和时区不存在障碍。
- 证书的受理、签发、售后都在国内机构,出问题可以直接找客服,不需要发英文工单来回磨。
这对部署在国内机房的服务器特别重要。如果CA的验证节点在境外,它需要能通过公网访问你的80或者443端口,才能完成文件校验或者HTTPS校验。而国内很多机房和云平台的网络策略对境外访问本身就不友好,申请过程中经常遇到验证服务器访问超时,提交了资料却卡在“等待验证”状态,最后只能反复重试。纯国内验证的申请,验证服务器在国内,访问国内IP的链路又近又稳,基本一次就能完成校验。我这次选择国内CA,很大程度上就是冲着这一点。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 申请前的门槛:材料、IP与选型
2.1 先确认你是不是“真有资格”签IP证书
不少人在申请环节被卡住,不是资料不对,而是前置条件没满足。公网IP证书的申请,CA会要求你证明对IP地址的控制权,所以有几件事必须提前确认。
- IP必须是固定公网IP。动态IP没法做证书绑定,CA验证通过后如果IP漂移,整张证书就废了。
- IP必须是公网地址。像192.168.x.x、10.x.x.x这类私网地址,任何正规CA都不会签。
- 80端口或443端口必须能被公网访问。CA会通过访问你的IP来放置校验文件或完成HTTPS校验,端口不通,验证必失败。
- 服务器必须已经绑定这个IP,并且你能控制服务器的网站根目录或进程。
- 如果是企业申请,营业执照、组织信息要和CA要求的一致;个人申请的话,部分国内CA也支持,但审核材料更多,周期也长一些。
我在准备阶段就遇到过一次教训:最初我打算用443端口做验证,结果发现那个端口被另一个服务占用了,验证服务器连不上,耽误了半天。后来先把端口理清楚,再提订单就顺利多了。所以申请前最好先画一张当前的端口占用和防火墙放行清单,别等CA来验证的时候才发
