Node.js x509.ca Property

The x509.ca is an inbuilt application programming interface of class X509Certificate within crypto module which is used to check if this PEM encoded X509 Certificate is a Certificate Authority (ca) certificate or not .

Syntax:

const x509.ca

Parameters: This property does not accept any argument as a parameter.

Return Value: This property returns Boolean value true if and only if this PEM encoded X509 Certificate is a Certificate Authority (ca) certificate.

  • How to generate a Public certificate?

Public certificate Open notepad and copy-paste the following key and save the file as public-cert.pem

-----BEGIN CERTIFICATE-----
MIICfzCCAegCCQDxxeXw914Y2DANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC
SU4xEzARBgNVBAgMCldlc3RiZW5nYWwxEDAOBgNVBAcMB0tvbGthdGExFDASBgNV
BAoMC1BhbmNvLCBJbmMuMRUwEwYDVQQDDAxSb2hpdCBQcmFzYWQxIDAeBgkqhkiG
9w0BCQEWEXJvZm9mb2ZAZ21haWwuY29tMB4XDTIwMDkwOTA1NTExN1oXDTIwMTAw
OTA1NTExN1owgYMxCzAJBgNVBAYTAklOMRMwEQYDVQQIDApXZXN0YmVuZ2FsMRAw
DgYDVQQHDAdLb2xrYXRhMRQwEgYDVQQKDAtQYW5jbywgSW5jLjEVMBMGA1UEAwwM
Um9oaXQgUHJhc2FkMSAwHgYJKoZIhvcNAQkBFhFyb2ZvZm9mQGdtYWlsLmNvbTCB
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAt/EfcF3FG4TneOBWr4JhOUdyuCXm
Dhy5yO3VKtQfPxr+5d0joCSnn/5vYDNSr1MfedZmqVxrXFoMAdPCd71BNmDmeLVi
QK61WREtASP0ZhQMoUBT+R3Fpdy0jPS0YoT/fBd96CJCmgsQOS8Tq5IKVeB61MyC
kwAQ2Goe0T3sdVkCAwEAATANBgkqhkiG9w0BAQsFAAOBgQATe6ixdAjoV7BSHgRX
bXM2+IZLq8kq3s7ck0EZrRVhsivutcaZwDXRCCinB+OlPedbzXwNZGvVX0nwPYHG
BfiXwdiuZeVJ88ni6Fm6RhoPtu2QF1UExfBvSXuMBgR+evp+e3QadNpGx6Ppl1aC
hWF6W2H9+MAlU7yvtmCQQuZmfQ==
-----END CERTIFICATE-----

Example 1:

index.js




// Node.js program to demonstrate the  
// x509.ca APi
  
// Importing crypto module
const {X509Certificate} = require('crypto')
  
// Importing fs module
const fs = require('fs')
  
// getting object of a PEM encoded X509 Certificate. 
const x509 = new X509Certificate(fs.readFileSync('public-cert.pem'));
  
// checking if this is a Certificate Authority (ca) certificate or not
// by using x509.ca api
const value = x509.ca
  
// display the result
if(value)
console.log("this is a Certificate Authority (ca) certificate")
else
console.log("this is not a Certificate Authority (ca) certificate")


Run the index.js file using the following command.

node index.js

Output:

this is not a Certificate Authority (ca) certificate

Example 2:

index.js




// Node.js program to demonstrate the  
// x509.ca APi
  
// Importing crypto module
const {X509Certificate} = require('crypto')
  
// Importing fs module
const fs = require('fs')
  
// display the result
if((new X509Certificate(fs.readFileSync('public-cert.pem'))).ca)
  console.log("this is a Certificate Authority (ca) certificate")
else
  console.log("this is not a Certificate Authority (ca) certificate")


Run the index.js file using the following command.

node index.js

Output:

this is not a Certificate Authority (ca) certificate

Reference: https://nodejs.org/dist/latest-v15.x/docs/api/crypto.html#crypto_x509_ca