0

    9月30日后,发现有些网站出现安全证书错误了?

    2023.06.03 | admin | 133次围观

    如果你是一位运维 (Dev Ops) 人员浏览器总是提示证书错误,在国庆长假期有没有收到紧急救援的电话呢?

    网站分为 HTTP 连线及 HTTPS 连线,大家可能在网址中都察觉到它们的存在,前者是无加密连线,后者是加密连线。最近几年,由于各大浏览器及互联网公司的极力推动,网站采用 HTTPS 连线几乎是标准。

    而要将网站改为 HTTPS 连线,并不是单纯在网址上加个 S 就可以的,背后涉及到一张安全证书 (SSL Certificate)。而这张证书,是要钱的。不过,为了让 HTTPS 普及,由几大科技巨头和学术机构,包括 Electronic Frontier Foundation、Mozilla 基金会、Michigan 大学、Akamai 和 Cisco 公司组成了一个非牟利机构 LetsEncrypt,主营免费的 SSL 安全证书签发。截至 2021 年 9 月,该机构已签发出 20 亿张证书(LetsEncrypt 的证书是三个月一签,一般付费的是一年一签),支援 2.6 亿个网站。

    根证书 (Root Certificate)

    如此大体量的机构,又与 2021 年 9 月 30 日有什么关系?原来,安全证书并不是随便一位阿戊就能发出的,作业系统和浏览器都要相信你的证书才可。所以 LetsEncrypt 开始提供服务的时候,使用了一张由 2000 年 9 月 30 日建立,有效期至 2021 年 9 月 30 日的根证书 (Root Certificate) DST Root CA X3所签发,这样做的好处是,各大作业系统和浏览器都能够信任 LetsEncrypt 所签发的证书。

    不过,但凡证书都有限期,所以 LetsEncrypt 早在 2015 年,已经开始“过渡”至另一张根证书 ISRG Root X1,它的有效期到 2035 年。问题在于如何让各大作业系统和浏览器信任这一张证书呢?答案就是通过系统更新。不过在科技界,普及更新总是困难的,即使历经几年时间,如果一直不进行系统或软件更新浏览器总是提示证书错误,仍然会受影响。

    受影响的作业系统

    - Windows XP SP3 以下

    - macOS 10.12.1 以下

    - iOS 10 以下

    - Android 7.1.1 以下

    - Ubuntu 16.04 以下

    解决方法

    如果你是普通用户,只需将作业系统及浏览器升级,基本上就完事了。不过,就像我手上有几台 Ubuntu 伺服器,版本在 16.04 以下的,又需要连线至 LetsEncrypt 所生成证书的站点,就需要做一些手动调整(需要使用 root权限):

    首先更新一下 apt`apt update`

    安装新版本的 ca-certificates`apt install ca-certificates`

    编辑`/etc/ca-certificates.conf`

    找到 `mozilla/DST_Root_CA_X3.crt`,在前面加上 `!` 符号,代表停用这张已过期的根证书。

    运行 `update-ca-certificates` 更新一下

    如果有运行网页伺服器的,重启一下就可以了。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论