跳到主要内容

融云根证书系统更新指南

本文档旨在指导融云服务的开发者完成根证书的强制性安全升级。为确保服务的连续性和安全性,请您仔细阅读并遵循本文中的步骤进行操作。

升级概要

升级信息类别详细说明
当前根证书状态DigiCert Global Root CA
过渡期证书状态DigiCert Global Root CA & DigiCert Global Root G2 交叉证书
最终根证书状态DigiCert Global Root G2
升级性质强制性安全升级
影响范围所有使用融云 SSL 证书的域名交互
关键影响业务中断风险:未在规定时间内完成升级,将导致 G1 及交叉证书失效。届时,所有依赖融云服务的系统将无法建立安全的 TLS 连接,并返回证书握手错误。
重要时间节点2025 年 04 月起:融云新签发的证书将使用 G1 与 G2 的交叉证书,以同时兼容 G1 和 G2 两种根证书。
2027 年 12 月起:融云新签发的证书将全面切换为 G2 根证书。

为何需要升级?

  1. Mozilla 政策变更: Mozilla 将于 2026 年 4 月 15 日起,在其信任库中移除对 DigiCert Global Root CA (G1) 根证书的信任。
  2. DigiCert 官方策略: 为响应 Mozilla 的政策并遵循行业安全标准,证书颁发机构 DigiCert 将全面停用旧的 G1 根证书体系,并切换至新的 Digicert Global Root G2 体系。
  3. 行业安全趋势: 本次升级是全行业范围内的强制性安全合规要求。新的 G2 根证书使用更安全的 SHA256 签名算法,以提升整体网络环境的安全性。

升级工作安排

自 2025 年起,融云服务器证书的颁发根 CA 将从 Digicert Global Root CA (G1) 变更为 G1 和 G2 共存的交叉证书,以确保在过渡期间服务的平稳运行。2027 年底后,将逐步替换为仅 G2 证书。

为避免服务中断,使用融云服务的开发者必须仔细阅读本指南,并完成相应的环境验证与修正。

您需要做什么?

  • 检查环境兼容性:大多数现代操作系统和运行时环境已默认内置 DigiCert Global Root G2 根证书,无需额外操作。
  • 识别潜在风险:如果您的服务器、客户端或代码中硬编码了对旧 G1 根证书的信任,则会受到影响。您必须移除此类限制,改用系统的默认信任库进行验证。
  • 确保 G2 证书存在:请确保您运行环境的信任库中包含 DigiCert Global Root G2 根证书。

G2 根证书兼容性

新的 G2 根证书体系采用 SHA256 签名算法,兼容当前主流的操作系统和移动设备。各平台的最低兼容版本如下:

平台OS/浏览器G1 根证书最低版本G2 根证书最低版本
MicrosoftInternet Explorer
Microsoft Edge
Google Chrome
Windows XP SP3+Windows XP SP3+
AppleSafari/Chrome for Mac OS XMac OS X 10.6+Mac OS X 10.10+
Safari/Chrome for iOSiOS 4.0+iOS 7.0+
MozillaFirefoxFirefox 2+
NSS 3.11.8
Firefox 32+
NSS 3.16.3
GoogleAndroidAndroid 1.1+Android 5.0+
OracleJavaJRE 1.4.2_17+JRE 1.8.0_131+

如何升级?

步骤 1:获取新根证书

如果您的环境缺少 G2 根证书,请从以下链接下载,并根据您的具体环境导入和适配。

步骤 2:更新您的环境

以下是针对不同开发环境的升级方案。

选择以下任一方式:

  1. 升级 JDK (推荐):将 JDK 升级到 1.8.0_131 或更高版本,其内置的信任库已包含 G2 根证书。
  2. 手动导入证书:将下载的 G2 根证书导入到 Java 的系统证书库 (cacerts)。
    sh
    keytool -keystore $JAVA_HOME/lib/security/cacerts -importcert -alias DigiCertGlobalRootG2 -file DigiCertGlobalRootG2.crt.pem -storepass changeit
  3. 代码中指定信任库
    Java
    System.setProperty("javax.net.ssl.trustStore", "/path/to/your/custom/truststore");
    System.setProperty("javax.net.ssl.trustStorePassword", "password");

如何验证?

融云提供了一个专用于 G2 证书测试的页面:https://g2-test.rong-api.com。 如果您的客户端能与此页面正常建立 SSL 连接,则表明您的环境已支持 G2 根证书。

您可以使用以下代码示例进行验证。

将以下代码保存为 SSLCertificateChecker.java 文件:

Java
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLHandshakeException;
import javax.net.ssl.SSLSocketFactory;
import java.io.IOException;
import java.net.URL;

public class SSLCertificateChecker {
public static void main(String[] args) {
String url = "https://g2-test.rong-api.com";
if (args.length > 0) {
url = args[0];
}
System.out.println("Testing connection to: " + url);
checkCertificate(url);
}

public static void checkCertificate(String urlString) {
try {
URL url = new URL(urlString);
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.connect();
int responseCode = connection.getResponseCode();
System.out.println("SUCCESS: Connection successful. Response Code: " + responseCode);
} catch (SSLHandshakeException e) {
System.err.println("FAILURE: SSL Handshake failed. Your environment may not trust the G2 root certificate.");
e.printStackTrace();
} catch (IOException e) {
System.err.println("ERROR: An I/O error occurred.");
e.printStackTrace();
}
}
}

然后通过以下命令编译并运行:

sh
javac SSLCertificateChecker.java
java SSLCertificateChecker

根证书指纹

如果您需要手动验证根证书的真实性,请核对以下指纹信息。数据来源于 DigiCert 官网

DigiCert Global Root G2

  • SHA-1: DF:3C:24:F9:BF:D6:66:76:1B:26:80:73:FE:06:D1:CC:8D:4F:82:A4
  • SHA-256: CB:3C:CB:B7:60:31:E5:E0:13:8F:8D:D3:9A:23:F9:DE:47:FF:C3:5E:43:C1:14:4C:EA:27:D4:6A:5A:B1:CB:5F

DigiCert Global Root CA (旧版)

  • SHA-1: A8:98:5D:3A:65:E5:E5:C4:B2:D7:D6:6D:40:C6:DD:2F:B1:9C:54:36
  • SHA-256: 43:48:A0:E9:44:4C:78:CB:26:5E:05:8D:5E:89:44:B4:D8:4F:96:62:BD:26:DB:25:7F:89:34:A4:43:C7:01:61

后续步骤

  1. 环境验证:按照本文档的指导,在您的测试或预生产环境中完成升级与验证。
  2. 生产部署:确认测试无误后,在生产环境中实施相同的变更。
  3. 持续监控:部署后,请密切关注应用日志,确保无 SSL/TLS 相关错误。

验证成功标准:您的系统能够与融云服务器正常建立 HTTPS 连接,无任何证书相关错误,且业务功能一切正常。