一、这一篇在处理什么
这一篇只处理一件事:在台湾运行的API 接口站,使用维科云的域名服务时,如何处理「证书名字和对外域名不一致」。
用户访问的名字不在证书里。解析是对的,浏览器仍提示不安全。
看用户访问的主机名是否出现在证书里。
二、台湾的网络和高峰
晚间高峰集中,整点活动时会有瞬间爬坡。岛内访问和跨境访问差异大。跨境首包变慢时,岛内用户可能仍然正常。
排查时:把台湾岛内和从台湾出去的访问分开统计。只有跨境慢时,不要改岛内源站的业务逻辑。
不要这样做:用台北办公网络代表全部用户。移动网络和办公网络要各测一次。
三、API 接口站要分开的路径
按路径区分只读和写入。只读且不含身份的响应才可以短缓存,写入必须回源。
防护边界:整站跳转和整站挑战不能盖住接口。调用方不会处理跳转到网页的结果。
验证:用固定的样例请求看状态码和正文是否仍是接口格式。失败时日志里要有请求编号,而不是一段网页。
四、域名服务怎么接
主域名只保留一个对外规范地址,解析指向边缘,不指向源站。注册商账号、解析账号和证书分开。续费提醒发到有人看的邮箱。防御性注册只覆盖真正会被混淆的后缀,并全部纳入同一张到期表。
产品说明见域名服务。只改和「证书名字和对外域名不一致」有关的域名或路径,不要把API 接口站的其他路径一起改掉。
五、排查步骤
下面五步按因果顺序执行,后一步依赖前一步的结果。步骤针对「证书名字和对外域名不一致」,不是一套通用清单。
- 只读接口和写入接口分成两列。写入请求一律记为不缓存。 岛内访问和从台湾出去的跨境访问分成两张表。 这一故障在本步要完成的事:列出对外入口。
- 只读且不含身份的响应才允许短缓存。任何写入都不能被跳转成网页。 只有跨境变慢时,不要修改只服务岛内的程序逻辑。 这一故障在本步要完成的事:读出证书覆盖的名字。
- 挑战和整站跳转排除全部接口路径。需要限速时按路径限速,返回仍是接口格式。 跨境路径单独改调度或回源。岛内解析保持不动。 这一故障在本步要完成的事:找出缺失的入口。
- 源站对写入接口做幂等。只读接口不要因为写入故障被一起拒绝。 确认岛内表仍然正常后,再发布跨境这一侧的变更。 这一故障在本步要完成的事:补签或改用已经覆盖的规范名字并做跳转。
- 用一条固定样例请求检查状态码和正文仍是接口数据。失败日志里要有请求编号。 用台湾移动网络和办公网络各测一次,不要只用台北办公室的有线网络。 这一故障在本步要完成的事:上线检查同时看解析和证书。
六、处理办法
- 入口名单和证书一起改。
- 跳转目标必须在证书里。
- 不要只验证主站首页。
改完后在台湾的用户网络上复查,不要只在机房内网看。复查时带上API 接口站的验证:用固定的样例请求看状态码和正文是否仍是接口格式。失败时日志里要有请求编号,而不是一段网页。
七、案例
新的国家站点能解析,证书里没有这个名字。补进证书后浏览器不再提示。
若同样的现象出现在台湾,额外核对:把台湾岛内和从台湾出去的访问分开统计。只有跨境慢时,不要改岛内源站的业务逻辑。
业务侧核对:按路径区分只读和写入。只读且不含身份的响应才可以短缓存,写入必须回源。
这个案例只说明怎么定位,不构成容量或可用性承诺。
八、常见问题
问:解析正确为什么还打不开?
答:打开还要证书匹配名字。
问:跳转到已有名字行不行?
答:行,而且往往比再签一个冷门入口简单。
问:通配符覆盖了吗?
答:只覆盖一层,要实际读证书确认。
问:同一故障换一个地区或一种业务,排查还一样吗?
答:不一样。每一步都先按API 接口站的路径处理,再按台湾的网络条件收窄,最后才做「证书名字和对外域名不一致」这一故障本身的动作。换地区或换业务,前两段操作就会变。
九、边界
只讨论域名服务在「证书名字和对外域名不一致」上的处理,地区范围是台湾,业务范围是API 接口站。请遵守当地法律。维科云提供网络能力,不对客户业务内容负责。