查看原文
其他

编程导航,凉凉!

鱼皮 程序员鱼皮 2022-08-14

血泪教训

大家好,我是鱼皮。

昨天中午,我的编程导航网站的登录功能突然出现了问题。具体的错误表现是:用户在公众号后台点击按钮获取登录验证码时,会出现报错。

最开始我没太在意,因为我已经很久没有动过线上服务了,以为就是微信后台那边抽抽了,估计一会儿就恢复了。结果过了半个小时,这边陆陆续续收到几十条小伙伴的反馈,我才意识到这问题有点严重了,赶紧放下喝到一半的饺子汤,找台电脑修 Bug。

简单分析一下,公众号后台还能收到错误提示,说明能请求通编程导航的服务器,也就是说网络和机器层面应该没有问题。那就登录服务器查看业务日志,如图:

错误日志

我一看,好家伙,原来是登录时调用 getCaptcha(获取验证码)接口失败了,报了 SSL 握手异常。

看到这里有经验的小伙伴应该能猜到问题出在哪里了。没错,就是 HTTPS 请求,客户端向服务器发送 HTTPS 请求时,会先和服务器进行 SSL 握手(类似 TCP 握手过程),从而建立安全的 SSL 连接进行数据通信。

整个流程大概如下图:

SSL 握手

其中有一个很重要的过程是 证书校验 ,就是要让客户端知道服务端的域名证书是有效且合法的。

而仔细看我们的日志,就会发现 SSL 握手的失败正是由证书验证失败导致的:

那为毛 SSL 证书会出问题啊,申请成功后一般配置一次就好了,谁没事会去动这个证书啊?

于是,我登录腾讯云控制台一看,tnnd,原来是一年前买的证书过期了!腾讯云虽然给我发了过期提示邮件,不过被我当成垃圾邮件扔回收站里了。。。

证书是在 0 点时过期的,也就是说,网站持续整整十几个小时没法登陆,这种事要是发生在大项目里,肯定是 P0 级事故了!

后来,我重新申请了新证书,在服务器上更新证书文件的配置,请求就通了,大家又能愉快地登陆了~

不过。。。好像有后遗症,不知道为啥,虽然服务器响应成功了,但仍然提示 “该公众号提供的服务出现故障”:

这就真给我整蒙了,因为代码完全没动、服务器配置完全没动、服务也正常使用了,但为啥还会有这个提示呢?

于是,我重启了后台、重启了公众号配置,但仍然无效。由于最近比较忙,也没空折腾了,能用就先用着吧,唉。。。

也是非常抱歉给大家带来了影响,对不起!

不过这次起码学到了个教训,一定要多关注自己产品的有效期,否则很难预料过期后会有哪些后果。

这做网站,多是一件美逝啊!

往期推荐

几个今年超火的编程网站!

我竟然被一个AI机器人坑了!

刚夸你免费,你就收费了!?

Java 处理表格,真的很爽!

我的个人博客上线啦!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存