Tailscale 的 TLS 证书过期,网站挂了 90 分钟!
3月7日,基于 WireGuard 的知名 VPN 厂商 Tailscale 的官方网站 tailscale.com 因 TLS 证书过期而中断服务约90分钟。
虽然影响有限,但这起事件还是在 Hacker News 等论坛引发了热烈的讨论和反思。
网友们纷纷表达了自己的看法。smackeyacky 感慨道:“我说过一次,现在我要再说一次:证书过期已然成为新时代服务中断的头号杀手。”
Tailscale 联合创始人 bradfitz 也第一时间在 Hacker News 回应,介绍了事发原因和应对过程。原来,他们在去年12月进行了一次大规模的网站迁移,涉及底层架构、域名解析等多个环节的重构。为了支持 IPv6,他们还特意搭建了额外的代理服务器。
但令人始料未及的是,这个看似无伤大雅的改动,竟然埋下了祸根。由于代理服务器终止了 TLS 连接,加上 DNS 配置的疏忽,监控系统没能及时发现证书已经过期的警告。bradfitz 坦言,这次事故暴露出团队在变更管理和风险评估方面还有很大的提升空间。
这波 “辩解”,你买账吗?让我们来看看网友们怎么说。
j45 就提出了质疑:如果 IPv6 如此重要,为什么当初要选择一家压根不支持的供应商呢?bradfitz 只能苦笑,表示公司内部在这个问题上尚未达成共识。
lmeyerov 则一针见血地指出,关键脚本和文档不应该放在营销页面上,那无异于 “身败名裂”。
更有意思的是,大家对 Tailscale 下一步的打算出谋划策。amluto 建议他们最好换成 TCP 代理,这样可以充分利用 Let's Encrypt 的 HTTP 验证方式。agwa 的想法则更大胆:要不要试试每天自动更新证书?延长过期时间虽然安全,但如此频繁的滚动更新,应该也不是什么难事儿吧?
光说不练假把式,Tailscale 到底准备如何破局?bradfitz 表示,除了之前提到的监控改进,他们还计划进一步简化网络拓扑,减少对特殊方案的依赖。同时,为了防患于未然,还要像 “古人” 那样设置每月提醒,专人盯防,避免证书过期时 “完犊子”。
但 bradfitz 也不忘自信满满地补充:Tailscale 的设计目标,本来就是打造一个弹性十足的网状架构。即便控制平面偶尔抽风,用户的连接状态也不会受到影响。这次事故恰恰印证了他们的优势所在。
Tailscale 本次的应对,可谓是基础设施领域的 “教科书”。他们没有避重就轻、诿过于人,而是勇于承担责任;他们没有急于修补、敷衍了事,而是深刻反思、触及本质。这种开诚布公、虚心接纳的态度,值得每一个技术团队学习。
回到本次事件,笔者认为,Tailscale 暴露出的问题绝非个案。在快速迭代的今天,任何平台都难免经历这样那样的折腾。但关键是要时刻保持警惕,尊重专业,关注细节。一念之差,可能就是业务中断、口碑受损的起点。
尤其值得警惕的是 “身败名裂” 式的设计。当一个看似不起眼的页面或服务,成为了整个系统的 “生死簿”,我们就必须格外留心。是否应该适当解耦?是否需要特别优化?唯有未雨绸缪,才能降低 “黑天鹅” 事件的影响。
对创业公司而言,技术固然重要,但更要注重全局观。什么是真正的刚需?什么又是可以简化的?架构师们需要时刻问自己这样的问题。盲从所谓 “最佳实践”,搞出一堆 “金玉其外败絮其中” 的玩意儿,那就本末倒置了。
总而言之,Tailscale 的 “证书门”,为我们敲响了警钟:安全可用是一切的基础。必须通过周密的设计、严谨的态度,才能获得用户的信赖。相信 Tailscale 能够从这次事件中汲取教训,以更成熟、专业的姿态,打造真正韧性十足的服务,在 VPN 领域一路高歌。
尽管 Tailscale 因 TLS 证书过期导致了90分钟的服务中断,但这恰恰凸显了它的一大优势——多数用户几乎没有受到影响。Tailscale 的分布式架构使得用户端的连接不依赖于中心节点始终在线。这种弹性设计是 Tailscale 区别于传统 VPN 的关键所在。短暂的中心服务中断并不能否定 Tailscale 的价值,反而凸显了其良好的容错性。
Tailscale 的 TLS 证书过期,网站挂了 90 分钟!的更多相关文章
- 在阿里云托管kubernetes上利用 cert-manager 自动签发 TLS 证书[无坑版]
前言 排错的过程是痛苦的也是有趣的. 运维乃至IT,排错能力是拉开人与人之间的重要差距. 本篇会记录我的排错之旅. 由来 现如今我司所有业务都运行在阿里云托管kubernetes环境上,因为前端需要对 ...
- 新开源HTML5单文件网页版ACME客户端,可在线申请Let's Encrypt、ZeroSSL免费HTTPS多域名通配符泛域名SSL/TLS证书(RSA/ECC/ECDSA)
目录 开源项目的起源 项目地址 使用方法 第一步:选择Let's Encrypt.ZeroSSL或其他证书颁发机构 第二步:证书配置,填写域名 第三步:完成域名所有权的验证 第四步:下载保存证书PEM ...
- 二进制搭建kubernetes多master集群【一、使用TLS证书搭建etcd集群】
上一篇我们介绍了kubernetes集群架构以及系统参数配置,参考:二进制搭建kubernetes多master集群[开篇.集群环境和功能介绍] 下面本文etcd集群才用三台centos7.5搭建完成 ...
- 附008.Kubernetes TLS证书介绍及创建
一 Kubernetes证书 1.1 TLS Kubernetes系统的各个组件需要使用TLS证书对其通信加密以及授权认证,建议在部署之前先生成相关的TLS证书. 1.2 CA证书创建方式 kuber ...
- 十大免费SSL证书:网站免费添加HTTPS加密
SSL证书,用于加密HTTP协议,也就是HTTPS.随着淘宝.百度等网站纷纷实现全站Https加密访问,搜索引擎对于Https更加友好,加上互联网上越来越多的人重视隐私安全,站长们给网站添加SSL证书 ...
- 从sslyze看TLS证书的点点滴滴
纵观眼下,https已经深入大街小巷,成为网络生活中不可或缺的一部分了.提到了https,我们又不得不想到TLS(SSL),而提到了TLS,我们又不得不提到一个让人捉摸不透的东西:TLS证书. 关于证 ...
- https证书过期问题
这个是以前配置证书的文章,同时更新证书的有效的一篇文章 最近网站的https证书过期了,造成无法对外提供服务,怀疑是当时配置的自动更新没有起作用. 然后去后台更新https证书,却遇到了问题,使用的具 ...
- 基于TLS证书手动部署kubernetes集群(上)
一.简介 Kubernetes是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernetes也叫K8S. K8S是Google内部一个叫Borg的容器集群管理系统衍生 ...
- 免费SSL证书(https网站)申请
如何拥有一个自己的免费的SSL证书,并且能够长期拥有.这篇文章让你找到可用的免费证书o(* ̄︶ ̄*)o 各厂商提供的免费SSL基本是Symantec(赛门铁克),申请一年,不支持通配符,有数量限制. ...
- SSL证书/TLS证书是什么
https://blog.csdn.net/donghaixiaolongwang/article/details/79193695 A. SSL协议与TLS是什么?它们的功能是什么? 答:SSL(S ...
随机推荐
- 图数据库 NebulaGraph 的 Java 数据解析实践与指导
如何快速.即时.符合直觉地去处理 Nebula Java Client 中的数据解析?读这一篇就够了. 图数据库 NebulaGrpah 的论坛和微信群里,有不少用户问及了 Java 客户端数据解析的 ...
- SQL之基本查询
提纲 记录查询 使用列别名 查询语句执行顺序 数据分页 子句执行顺序 结果集排序 PS: 排序注意 多个排序字段 子句执行顺序 结果集去除重复数据 注意: 条件查询 比较运算符 注意 子句执行顺序
- Asp .Net Core 系列:Asp .Net Core 集成 Newtonsoft.Json
简介 Newtonsoft.Json是一个在.NET环境下开源的JSON格式序列化和反序列化的类库.它可以将.NET对象转换为JSON格式的字符串,也可以将JSON格式的字符串转换为.NET对象.这个 ...
- 手把手带你认识GaussDB轻量化运维管理工具
本文分享自华为云社区<GaussDB轻量化运维管理工具介绍>,作者: Gauss松鼠会小助手. 一.GaussDB 运维管理平台简介 开放生态层 友好Web界面,多云皮肤个性化定制 丰富的 ...
- git的 .gitignore 配置概述
git的 .gitignore 配置概述 学习背景:自己在使用git时发现有时会上传很多无用的配置文件,或者在项目中已经包含一个本地的git仓库,导致上一级项目上传总是报错,所以学习采用gitigno ...
- python 生成虚拟环境requirement.txt
# 在项目根目录中,打开终端执行以下命令 # 生成 requirements.txt 文件 pip3 freeze > requirements.txt # 安装依赖文件 pip3 instal ...
- vscode 注释后 光标下移(注释后光标快速定位下一行) 仿照idea
VSCode 注释后光标快速定位下一行 1. 安装插件 Multi-command Multi-command 2.打开 Keybinding.json Keybinding.json 左下角齿轮图标 ...
- cmd查看环境变量
1.查看当前所有可用的环境变量:输入 set 即可查看. 2.查看某个环境变量:输入 "set 变量名"即可,比如想查看path变量的值,即输入 set path 3.修改环境变量 ...
- buntu之命令行模式和图形界面切换
1.按ALT+CTRL+F1切换到字符界面(Linux实体机) 如果是VMware虚拟机安装的Linux系统,则切换到字符界面的时候需要以下操作 按下ALT+CTRL+SPACE( ...
- 最简洁明了的Linux常用命令
1.ls 命令 查看当前目录下可见的文件.文件夹及其相关权限 常用参数:-l 列表式查看 -al 查看所有,包括隐藏的文件.文件夹 [root@qinshengfei bin]# ls --color ...