更新 SSL 证书
事件说明
SSL 证书是超文本传输安全协议 HTTPS 的基石,由受信任的根证书颁发机构颁发。而 QingStor 对象存储选用的 SSL 证书由全球使用最为广泛的根证书机构 Let’s Encrypt 签发。
近期 Let’s Encrypt 机构新增了根证书,使得老的根证书在 2021年9月30号 过期。由于 OpenSSL,GnuTLS 等 SSL 库实现问题,Let’s Encrypt 提供的交叉签名根证书可能会导致您的应用在访问 QingStor 对象存储时出现形如 certificate has expired
或证书过期的报错,常见的形式如下:
# wget https://qsstor.com
--2021-10-13 10:15:53-- https://qsstor.com/
Resolving qsstor.com (qsstor.com)... 139.198.8.201
Connecting to qsstor.com (qsstor.com)|139.198.8.201|:443... connected.
ERROR: cannot verify qsstor.com's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:
Issued certificate has expired.
To connect to qsstor.com insecurely, use `--no-check-certificate'.
解决方案
针对以上问题,QingStor 对象存储团队提供了详细的解决方案。分别说明如下:
升级系统
保持您的系统处于更新状态是解决此类问题的最佳方案。如果您的系统不便进行完整的升级,请着重升级 openssl,gnutls 和 ca-certificates。该解决方案适用于如下平台:
-
Windows >= XP SP3
-
macOS >= 10.12.1
-
iOS >= 10
-
Android >= 7.1.1
-
Mozilla Firefox >= 50.0
-
Ubuntu >= xenial / 16.04
-
Debian >= jessie / 8
-
Java 8 >= 8u141
-
Java 7 >= 7u151
-
NSS >= 3.26
不同平台,分别执行不同的命令行。具体内容如下:
-
CentOS / RHEL:
yum upgrade openssl gnutls ca-certificates
-
Ubuntu / Debian:
apt upgrade openssl libgnutls30 ca-certificates
手动禁用过期证书
如果您的系统已不再提供更新,或者不便进行系统更新,请手动禁用过期证书,具体的操作方案如下:
-
Linux 平台
-
打开并编辑
/etc/ca-certificates.conf
文件; -
在
mozilla/DST_Root_CA_X3.crt
这一行前增加一个英文、半角的感叹号!
,以禁用该证书:!mozilla/DST_Root_CA_X3.crt
-
编辑完成后,运行如下命令行以更新系统的证书链:
update-ca-certificates
-
在 CentOS 7 及其以后的版本,您还需要执行如下命令行:
cp /etc/pki/ca-trust/extracted/cadir/DST_Root_CA_X3.pem /etc/pki/ca-trust/source/blacklist update-ca-trust
-
-
Windows 平台
使用快捷键
Win + r
并输入certmgr.msc
以打开系统的证书管理器,搜索DST ROOT CA X3
并删除相关证书后重启即可。 -
Java 平台
执行如下命令:
sudo keytool -delete -alias dstrootcax3 -cacerts -storepass 'changeit'