Skip to content

Node 26.3 lack "Google GTS R2" cert in default root certificates #63793

Description

@drazzib

Version

v26.3.0

Platform

Linux 6.6.137-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-04-30 12:31:36 aarch64 Linux

Subsystem

crypto

What steps will reproduce the bug?

After Node 26.3 upgrade, it seems that some root certificates has been discarded from embedded node runtime. For instance, I've found out that "GTS Root R2" is not present anymore whereas it's a still valid upstream (in Mozilla NSS project).

Using tls.rootCertificates we can extract default SSL certificate embedded inside Node binary (injected from src/node_root_certs.h source code)

const tls = require('tls');
const crypto = require("crypto");

tls.rootCertificates.forEach(function(value){
    console.log("--------------------");
    const cert = new crypto.X509Certificate(value);
    console.log(`Issuer: ${cert.issuer.split('\n').reverse().join(', ')}`);
    console.log(`SHA256: ${cert.fingerprint256}`);
    console.log("--------------------");
});

How often does it reproduce? Is there a required condition?

This issue is independent from any condition / configuration

What is the expected behavior? Why is that the expected behavior?

Like in previous node release, I should see information about GTS Root R2 certificate like this :

  • Issuer: CN=GTS Root R2, O=Google Trust Services LLC, C=US
  • SHA256: 8D:25:CD:97:22:9D:BF:70:35:6B:DA:4E:B3:CC:73:40:31:E2:4C:F0:0F:AF:CF:D3:2D:C7:6E:B5:84:1C:7E:A8

Furthermore, the source code of upstream NSS certdata.txt still contains "Google GTS R2" certificate

What do you see instead?

A few root certificates are missing from tls.rootCertificates especially "Google GTS R2"

Additional information

Activity

  1. Renegade334 commented on Jun 8, 2026

    @Renegade334
    Member

    GTS R2 no longer has websites trust: https://bugzilla.mozilla.org/show_bug.cgi?id=2020137

  2. drazzib commented on Jun 8, 2026

    @drazzib
    Author

    GTS R2 no longer has websites trust: https://bugzilla.mozilla.org/show_bug.cgi?id=2020137

    You're absolutely right, it seems justified by the new management policy on Google Trust Services.

    Hello Mozilla,
    
    The following is Google Trust Services' root strategy plan:
    
    - GTS R1 (TLS-only): remove the email trust bit
    
    - GTS R2 (S/MIME-only): remove the websites trust bit
    
    - GTS R3 (TLS-only): remove the email trust bit only (keep the website trust bit)
    
    - GTS R4 (TLS-only): remove the email trust bit
    
    - GSR4 (TLS-only): remove the email trust bit
    

    I'd missed this new strategy, thanks @Renegade334 !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions