Encapsulates an X509 certificate and provides read-only access to its information.

const { X509Certificate } = await import('crypto');

const x509 = new X509Certificate('{... pem encoded cert ...}');

console.log(x509.subject);

v15.6.0

Constructors

Properties

ca: boolean

Will be true if this is a Certificate Authority (CA) certificate.

v15.6.0

fingerprint: string

The SHA-1 fingerprint of this certificate.

Because SHA-1 is cryptographically broken and because the security of SHA-1 is significantly worse than that of algorithms that are commonly used to sign certificates, consider using x509.fingerprint256 instead.

v15.6.0

fingerprint256: string

The SHA-256 fingerprint of this certificate.

v15.6.0

fingerprint512: string

The SHA-512 fingerprint of this certificate.

v16.14.0

subject: string

The complete subject of this certificate.

v15.6.0

subjectAltName: string

The subject alternative name specified for this certificate or undefined if not available.

v15.6.0

infoAccess: string

The information access content of this certificate or undefined if not available.

v15.6.0

keyUsage: string[]

An array detailing the key usages for this certificate.

v15.6.0

issuer: string

The issuer identification included in this certificate.

v15.6.0

issuerCertificate?: X509Certificate

The issuer certificate or undefined if the issuer certificate is not available.

v15.9.0

publicKey: KeyObject

The public key KeyObject for this certificate.

v15.6.0

raw: Buffer

A Buffer containing the DER encoding of this certificate.

v15.6.0

serialNumber: string

The serial number of this certificate.

Serial numbers are assigned by certificate authorities and do not uniquely identify certificates. Consider using x509.fingerprint256 as a unique identifier instead.

v15.6.0

validFrom: string

The date/time from which this certificate is considered valid.

v15.6.0

validTo: string

The date/time until which this certificate is considered valid.

v15.6.0

Methods

  • Checks whether the certificate matches the given email address.

    If the 'subject' option is undefined or set to 'default', the certificate subject is only considered if the subject alternative name extension either does not exist or does not contain any email addresses.

    If the 'subject' option is set to 'always' and if the subject alternative name extension either does not exist or does not contain a matching email address, the certificate subject is considered.

    If the 'subject' option is set to 'never', the certificate subject is never considered, even if the certificate contains no subject alternative names.

    Parameters

    Returns string

    Returns email if the certificate matches, undefined if it does not.

    v15.6.0

  • Checks whether the certificate matches the given host name.

    If the certificate matches the given host name, the matching subject name is returned. The returned name might be an exact match (e.g., foo.example.com) or it might contain wildcards (e.g., *.example.com). Because host name comparisons are case-insensitive, the returned subject name might also differ from the given name in capitalization.

    If the 'subject' option is undefined or set to 'default', the certificate subject is only considered if the subject alternative name extension either does not exist or does not contain any DNS names. This behavior is consistent with RFC 2818 ("HTTP Over TLS").

    If the 'subject' option is set to 'always' and if the subject alternative name extension either does not exist or does not contain a matching DNS name, the certificate subject is considered.

    If the 'subject' option is set to 'never', the certificate subject is never considered, even if the certificate contains no subject alternative names.

    Parameters

    Returns string

    Returns a subject name that matches name, or undefined if no subject name matches name.

    v15.6.0

  • Checks whether the certificate matches the given IP address (IPv4 or IPv6).

    Only RFC 5280 iPAddress subject alternative names are considered, and they must match the given ip address exactly. Other subject alternative names as well as the subject field of the certificate are ignored.

    Parameters

    • ip: string

    Returns string

    Returns ip if the certificate matches, undefined if it does not.

    v15.6.0

  • Checks whether this certificate was issued by the given otherCert.

    Parameters

    Returns boolean

    v15.6.0

  • Checks whether the public key for this certificate is consistent with the given private key.

    Parameters

    Returns boolean

    v15.6.0

  • There is no standard JSON encoding for X509 certificates. ThetoJSON() method returns a string containing the PEM encoded certificate.

    Returns string

    v15.6.0

  • Returns information about this certificate using the legacy certificate object encoding.

    Returns PeerCertificate

    v15.6.0

  • Returns the PEM-encoded certificate.

    Returns string

    v15.6.0

  • Verifies that this certificate was signed by the given public key. Does not perform any other validation checks on the certificate.

    Parameters

    Returns boolean

    v15.6.0