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 ...
随机推荐
- ElkStack-MACOS搭建
目录 简介 Elasticsearch Logstash/Filebeats Kibana 架构流程 安装配置 版本 先决条件 brew Elasticsearch mac安装elasticsearc ...
- 【Azure Compute Gallery】使用 Python 代码从 Azure Compute Gallery 复制 Image-Version
问题描述 Azure Compute Gallery 可以帮助围绕 Azure 资源(例如映像和应用程序)生成结构和组织,并且支持全局复制. 如果想通过Python代码实现 Image-Version ...
- 图数据库认证考试 NGCP 错题解析 vol.02:这 10 道题竟无一人全部答对
如果你读过「NebulaGraph 错题解析第一期」,大概知道在错题解析未出来之前,NebulaGraph 专业技能认证 NGCP(全称 NebulaGraph Certified Professio ...
- 使用JMeter的JSON提取器:通过递归下降查找,从接口响应中提取特定字段
在接口测试中,我们经常需要从返回的JSON数据中提取特定字段以便后续使用.JMeter提供了JSON提取器,可以帮助我们实现这一目标.本文将介绍如何使用JMeter的JSON提取器通过递归下降查找的方 ...
- dart特殊符号语法(一)
许久没有写博客.浏览以往的博客,是那么稚嫩.就让它们当成成长的照片吧.重新开始操起这个记录的爱好,一方面把它当成可以查阅的资料,方便自己:另一方面希望有帮助于人.由于个人能力,认知有限,如读者发现有纰 ...
- 多个 .NET Core SDK 版本之间进行切换 global.json
由于同一台电脑可以安装多个版本的.NET Core SDK. 当安装了许多不同版本的.NET Core SDK 之后,要如何才能使用旧版dotnet 命令,执行dotnet new 或dotnet b ...
- 摆脱鼠标系列 - vscode 上一个编辑器 下一个编辑器 Ctrl + h Ctrl + l
摆脱鼠标系列 - vscode 上一个编辑器 下一个编辑器 Ctrl + H Ctrl + L 为什么 根据 hjkl h是左边的原则 h 左移一位 b 左移一个单词 H 移动到句首 0 是行首 I是 ...
- WPF之模板
目录 模板的内涵 数据的外衣DataTemplate UserControl例子 DataTemplate例子 控件的外衣 ControlTemplate 解剖控件 ItemsControl的Pane ...
- Android Studio批量打渠道包
原文: Android Studio批量打渠道包 - Stars-One的杂货小窝 公司项目渠道包越来越大,每次发版本都是开发人员打包,研究了下如何批量打渠道包,记录过程 步骤 1.gradle配置 ...
- FFmpeg命令行之ffmpeg
一.简述 ffmpeg是一个非常强大的工具,它可以转换任何格式的媒体文件,并且还可以用自己的AudioFilter以及VideoFilter进行处理和编辑.有了它,我们就可以对媒体文件做很多我们想做的 ...