Sample code for 30+ languages & platforms
React Native

Download and Trust the DigiCert Global Root CA

See more Certificates Examples

Demonstrates how to download a root certificate and trust it.

Chilkat React Native Downloads

React Native
import { BinData, Cert, Http, TrustedRoots } from '@chilkat/react-native'

async function chilkatExample() {
  // This requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  // In this example, the URLs for the DigiCert root CA certs are available at this web page:
  // https://www.digicert.com/digicert-root-certificates.htm

  // This example downloads the "DigiCert Global Root G3"
  // Valid until: 15/Jan/2038
  // Serial #: 05:55:56:BC:F2:5E:A4:35:35:C3:A4:0F:D5:AB:45:72
  // Thumbprint: 7E04DE896A3E666D00E687D33FFAD93BE83D349E

  const certUrl = 'https://dl.cacerts.digicert.com/DigiCertGlobalRootG3.crt';

  const http = new Http();
  const bdCert = new BinData();
  try {
    await http.downloadBdAsync(certUrl, bdCert);
  } catch {
    console.log(http.lastErrorText);
    return;
  }

  // Load it into a Chilkat cert object.
  const cert = new Cert();
  try {
    cert.loadFromBd(bdCert);
  } catch {
    console.log(cert.lastErrorText);
    return;
  }

  // Examine the common name,serial, and thumbprint:
  console.log(`CN: ${cert.subjectCN}`);
  console.log(`Serial: ${cert.serialNumber}`);
  console.log(`Thumbprint: ${cert.sha1Thumbprint}`);

  // Output from the above:
  // CN: DigiCert Global Root G3
  // Serial: 055556BCF25EA43535C3A40FD5AB4572
  // Thumbprint: 7E04DE896A3E666D00E687D33FFAD93BE83D349E

  // If desired, the certificate can be saved to a local file so it does not need
  // to be downloaded from the website every time.  
  const certPath = 'qa_data/certs/DigiCertGlobalRootG3.crt';
  bdCert.writeFile(certPath);

  // To load the cert from a file...
  cert.loadFromFile(certPath);

  // Do the following to add the cert to the collection of trusted roots
  // for this application.  (Note:  The trust is not persisted.  Each time the
  // application runs, it should load the cert (from whatever source, whether it is
  // a file, a database,etc.) and do the following:
  const troots = new TrustedRoots();

  troots.addCert(cert);
  troots.activate();

  console.log(`${cert.subjectCN} is now trusted for this run of this application.`);
}