Skip to main content

PKI and Root Certificate Rotation

NOTE

This document is a machine translation of the Japanese version.

Overview

In PKI (Public Key Infrastructure), which supports secure connections to web services (HTTPS), root certificate rotation is a critical event that impacts client environments. This article explains the mechanism and necessary actions, using the migration to "DigiCert Global Root G2" by Salesforce as a case study.

Core Technologies

What is PKI (Public Key Infrastructure)?

PKI (Public Key Infrastructure) is a framework that uses public-key cryptography to ensure secure communication and identity verification over the internet. PKI consists of the following key components:

  • Public and Private Keys: A pair of keys used for encryption and signature verification.
  • Digital Certificate: An electronic credential that proves "who owns" the public key.
  • Certificate Authority (CA): A trusted third-party entity that issues digital certificates and guarantees their validity. It acts as the anchor of trust.
  • Repository: A location where certificates and Certification Revocation Lists (CRLs) are published and stored.

PKI enables secure information exchange by preventing "spoofing," "tampering," and "repudiation."

Chain of Trust

In SSL/TLS communication, the "Chain of Trust" is verified to prove that a server certificate is legitimate.

  1. Root CA: The anchor of trust. Pre-installed in OS or browsers.
  2. Intermediate CA: Signed by the Root CA.
  3. Server Certificate: Signed by the Intermediate CA.

When a client is presented with a server certificate, it traces the signatures up the chain. If it ultimately matches a Root CA present in its own trust store, the communication is allowed.

What is Root Certificate Rotation?

It involves switching to a new root certificate due to the expiration of the root certificate authority or changes in security standards.

  • Server-side changes: Replacing the certificate chain with one that is rooted under the new Root CA.
  • Client-side impact: In older devices or environments (e.g., old Java versions, old OSs) that do not possess the new Root CA certificate, an SSL Handshake Error will occur, preventing connection.

Maintenance Points

When a root certificate switch is announced, the following "trust stores" need to be checked.

Environments to Check

Environment TypeCheck ContentNotes
Client PC/BrowserOS/Browser update statusUsually updated automatically on the latest Windows/Mac/Chrome, etc.
Java (JDK/JRE)cacerts fileJava has a keystore independent of the OS, so caution is required.
Docker ContainersBase image OSOld Alpine/Ubuntu images may have outdated certificates (ca-certificates package).
Legacy SystemsOS patch application statusNew root certificates might not be distributed to OSs that are out of support.

Salesforce Case Study (Migration to DigiCert Global Root G2)

On February 5, 2026, Salesforce will change its certificate chain to one rooted in "DigiCert Global Root G2".

Required Actions

Check if "DigiCert Global Root G2" is included in the trust store of the client environment. Note that the migration is to G2, not DigiCert Global Root G3.

  • Browsers: Major browsers are already compatible.
  • API Integration: If connecting via API from custom Java environments or older Linux servers, verification of the certificate store is necessary.

Implementation Guide (.NET)

Guidelines for handling verification when using Salesforce APIs from a .NET backend, by environment.

Certificate Verification in .NET

.NET (System.Net.Http.HttpClient) basically uses the OS certificate store for verification. If the OS trust store contains the new root certificate, no code changes are usually required.

Environment-Specific Actions

  1. Windows / Azure VM: Automatically updated via Windows Update. Manual import is required for closed networks.
  2. Linux / Docker: Update the ca-certificates package.
    # Dockerfile example (Debian/Ubuntu)
    RUN apt-get update && apt-get install -y ca-certificates
  3. Azure PaaS (App Service/Functions): Managed and updated by Microsoft at the platform level, so no action is required.

Verifying Certificate Existence

Example commands to check if "DigiCert Global Root G2" exists in the trust store.

Windows (PowerShell):

Get-ChildItem Cert:\LocalMachine\Root | Where-Object { $_.Subject -like "*DigiCert Global Root G2*" }

Linux (Debian/Ubuntu/Alpine): Check if it is included in /etc/ssl/certs/ca-certificates.crt.

grep "DigiCert Global Root G2" /etc/ssl/certs/ca-certificates.crt

Code Considerations (Certificate Pinning)

If you are performing Certificate Pinning (e.g., fixed Thumbprint checks) in your application, modification is mandatory.

// [NG] Hardcoding old thumbprints will cause connection failures
if (cert.Thumbprint == "OLD_THUMBPRINT...") return false;

References