@stendahls/cert-downloader

    2.0.0 • Public • Published

    cert-downloader Build Status

    This is a helper module that allows you to download an SSL certificate, by default that of Apple Inc..

    Offered functionality:

    • Download certificate and store locally.
    • Convert certificate to PEM format.
    • Validate a file against the certificate.

    More information and links to source code: https://github.com/stendahls/cert-downloader

    NOTE OpenSSL or compatible must be installed on your system if you wish to use certificates in the PEM format. Without this tool, only the download function will work.

    Install

    $ npm install stendahls/cert-downloader

    Usage

    var CertDownloader = require('cert-downloader');
    var certDl = new CertDownloader();
    
    // download and save in default (cache) location
    certDl.cert(function (error, certificatePath) {
        if(error) {
            console.error('Error ' + error);
        } else {
            console.log('Certificate downloaded to ' + certificatePath);
            // /nodeproject/certificate/AppleIncRootCertificate.cer
        }
    });
    
    // download and convert to PEM (will use cached cer file and convert that to pem)
    certDl.pem(function (error, certificatePath) {
        if(error) {
            console.error('Error ' + error);
        } else {
            console.log('Certificate downloaded to ' + certificatePath);
            // /nodeproject/certificate/AppleIncRootCertificate.pem
        }
    });
    
    // verifiy an existing file against the certificate
    // (will download and convert if required)
    var file = '/nodeproject/certificate/file-to-verify';
    certDl.verify(file, function(error, output) {
        if(error){
          return callback('File verification failed: ' + error);
        }
        console.log('Verified output: ' + output);
      });

    API

    CertDownloader([options])

    Construct a new CertDownloader.

    You will always need to call this first. options Overrides one or several defaults and should be in JSON format with any of the following options:

    • certName: name of the certificate (default is AppleIncRootCertificate.cer)
    • url : URL to download the certificate from (default is http://www.apple.com/appleca/AppleIncRootCertificate.cer)
    • cache : path to cache location (a.k.a. where to keep the certificates locally, by default this is the operating system's default directory for temp files)

    cert(callback)

    Retrieve the certificate.

    Attempts to download a missing certificate and returns the path to said certificate if available (either cached or downloaded). The callback gets two arguments (err, path), where path is a string to the location of the certificate.

    pem(callback)

    Retrieve the certificate in PEM format.

    Attempts to download and convert a missing certificate and returns the path to said certificate if available (either cached or converted). The callback gets two arguments (err, path), where path is a string to the location of the certificate.

    verify(file, callback)

    Verifies a file against the certificate.

    Attempts to download and convert a missing certificate and returns the content of the file if successfully verified. The callback gets two arguments (err, output), where output is the content of the file if successfully verified.

    License

    MIT

    Install

    npm i @stendahls/cert-downloader

    DownloadsWeekly Downloads

    22

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    23.6 kB

    Total Files

    8

    Last publish

    Collaborators

    • kokarn
    • stendahls.it
    • andy.mcpherson
    • gyran
    • ullmark