在 9 月 30 日,Let's Encrypt 所使用的来自 DST Root CA X3 的根证书按计划过期,根据官方的说明,这次事件对于绝大部分用户来说是没有影响的,但我们接到一小部分用户反馈相关的问题。
10月 11 日更新
我们在 10 月 11 日继续将华东节点的云引擎自定义域名、文件自定义域名和美国节点的云引擎自定义域名回滚为了发送 已过期的 DST Root CA X3 证书。
现在我们已经在所有节点的自定义域名上将 DST Root CA X3 证书加回,Android 7.1.1 以下设备将不会再报错,但使用较旧版本 OpenSSL 的程序(如较旧版本的 Node.js、Java 服务器端程序)会提示证书过期,这种情况 建议将 Node.js、Java 升级到最新的稳定版本,在云引擎中可以在 package.json
或 system.properties
等文件中配置版本。或者可以考虑自行在其他证书供应商处购买证书,在控制台将自定义域名的证书从自动改为自己上传的证书。
回滚 DST Root CA X3 证书
因为 10 月 7 日至 9 日我们在服务器端去掉已过期的 DST Root CA X3 证书导致较多的低于 Android 7.1.1 的设备报错,我们在 10 月 9 日晚间决定回滚这个改动。
现在我们已经在所有节点的 API 自定义域名上将 DST Root CA X3 证书加回,Android 7.1.1 以下设备将不会再报错,但使用较旧版本 OpenSSL 的程序(如较旧版本的 Node.js、Java 服务器端程序)会提示证书过期,这种情况 建议将 Node.js、Java 升级到最新的稳定版本,在云引擎中可以在 package.json
或 system.properties
等文件中配置版本。或者可以考虑自行在其他证书供应商处购买证书,在控制台将自定义域名的证书从自动改为自己上传的证书。
Android 7.1.1 以下设备无法识别证书
我们在 10 月 7 日至 9 日去除已经过期的 DST Root CA X3 证书的改动会导致 Android 7.1.1 以下设备报错 trust anchor for certification path not found
,我们目前还在评估这一改动的影响范围。
如果 Android 7.1.1 以下设备对你的应用来说非常重要,可以考虑自行在其他证书供应商处购买证书,在控制台将自定义域名的证书从自动改为自己上传的证书。
10 月 9 日更新
在 10 月 9 日(华东节点是 10 月 8 日)我们在服务器端对所有 API 自定义域名进行了调整,现在服务器端不会再发送已经过期的 DST Root CA X3 证书。云引擎和文件服务的自定义域名会在接下来几天内陆续完成同样的调整。非自定义域名(即由 LeanCloud 提供的域名)之前已经在 10 月 7 日至 8 日时去掉了 DST Root CA X3 证书。
因此对于使用较旧版本 Openssl、不支持服务端发送的证书中包含多个路径的程序现在应该不会再报证书错误了。
服务器程序提示证书过期
如果你在自己的服务器上运行后端程序,访问 LeanCloud 的 API,遇到证书过期(unable to find valid certification path
、certificate has expired
等)的错误提示,首先请 确保你的服务器操作系统信任了 ISRG Root X1 的根证书。可以在 Let's Encrypt 的文档 中看到默认信任该证书的操作系统版本,如果你的操作系统在这个列表中请确保有及时安装系统更新,如果不在的话需要 手动导入 ISRG Root X1 根证书。
此外,一些仍在使用 较旧版本 OpenSSL 的程序(如较旧版本的 Node.js、Java)不支持服务端发送的证书中包含多个路径,而是总是选择其中已经过期的路径(DST Root CA X3),因此会提示证书过期。这种情况 建议将 Node.js、Java 升级到最新的稳定版本,在云引擎中可以在 package.json
或 system.properties
等文件中配置版本。