Files
nexus/sreweekly/markdown/242/06-the-failure-of-a-computer-you-didn-t-even-know-existed-zh.md

39 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 一台你根本不知道它存在的计算机的故障
- **期号**: SRE Weekly Issue #242(2020-11-01)
- **作者**: Oren Eini — RavenDB
- **链接**: https://ayende.com/blog/192261-B/the-failure-of-a-computer-you-didnt-even-know-existed?Key=37a80133-d4db-498a-a62a-321ed12678fc
## 简介
"CRL 服务器宕机"——在排查数据库连接故障时,这不会是你第一个想到的原因。
## 正文
## 一台你根本不知道它存在的计算机的故障
**2 分钟阅读**
**323 词**
这篇文章的标题化用了 Leslie Lamport 的一句名言:"分布式系统就是这样的系统:一台你根本不知道它存在的计算机的故障,也能让你的计算机无法使用。"
几天前,我的博客挂了。网站是能打开的,但它一直报错,说无法连接数据库。这很出人意料,因为那个数据库运行在一个三重冗余的系统中,而且经受住了不少折腾。我花了一番功夫才弄清楚到底发生了什么,但根本原因很简单——某台我压根不知道存在的服务器挂了。
具体来说,是 crl.identrust.com 服务器宕机了。我对我们的内部架构相当熟悉,而那台服务器并不是我们依赖的东西。至少我以前是这么想的。CRL 是证书吊销列表(Certificate Revocation List)的缩写。让我们来看看它是从哪冒出来的吧。这是本博客的证书:
![image image](https://ayende.com/blog/Images/Open-Live-Writer/The-failure-of-a-computer-you-didnt-even_13489/image_thumb_1.png)
它由 Let's Encrypt 签发——整个互联网上超过 50% 的网站都是它签的。而 Let's Encrypt 的证书里藏着这样一个有趣的小细节:
![image image](https://ayende.com/blog/Images/Open-Live-Writer/The-failure-of-a-computer-you-didnt-even_13489/image_thumb_2.png)
注意,这个 CRL 只在 Let's Encrypt 自身被吊销的情况下才会被用到。而那种情况对整个互联网来说大概都是灾难性的事件(别忘了 > 50%)。
当那台服务器宕机时,RavenDB 客户端无法验证证书链是否有效,于是拒绝了请求。这是我们*没有*预料到的,也是我们正在考虑默认禁用的东西。如今证书吊销列表其实用得不多,更常见的是 OCSP(在线证书状态协议,Online Certificate Status Protocol),而即便是 OCSP 也有它的问题。
如果您对此有任何反馈,我将不胜感激。
## 评论
## 评论预览