simplessl
TypeScript icon, indicating that this package has built-in type declarations

2.6.0 • Public • Published

simplessl

A basic openssl manager

Build status Coverage status Dependency status Dev dependency status Issues Pull requests

Installation

$ npm install simplessl

Features

  • simply create key, csr & crt and save it in files for ssl use
  • ... with the three or only one function

Doc

interface iOptions {
  keysize?: string|number, // must be equal to : ("small" | 2048) | ("medium" | 3072) | ("large" | 4096)
  country?: string,
  locality?: string,
  state?: string,
  organization?: string,
  common?: string,
  email?: string
}
 
interface iPrivateKey {
  options: iOptions,
  privateKey: string
}
 
interface iCSR extends iPrivateKey {
  CSR: string
}
 
interface iCertificate extends iCSR {
  certificate: string
}
  • setOpenSSLBinPath(file: string): Promise<void> set a specific path to the OpenSSL software (default = process.env.OPENSSL_BIN || "openssl")
  • setOpenSSLConfPath(file: string): Promise<void> set a specific path to the OpenSSL configuration (default = process.env.OPENSSL_CONF || /lib/openssl.cnf)
  • createPrivateKey(keyfile: string, options?: string|number|iOptions): Promise<iPrivateKey>
  • createCSR(keyfile: string, csrfile: string, options?: string|number|iOptions): Promise<iCSR>
  • createCertificate(keyfile: string, csrfile: string, certificatefile: string, options?: string|number|iOptions): Promise<iCertificate>

if "options" is given and not an object, define the key's size

Examples

Native

const SimpleSSL = require("simplessl");
 
const SSL = new SimpleSSL(),
 
   crtpath = path.join(__dirname, "crt"),
      serverkey = path.join(crtpath, "server.key"),
      servercsr = path.join(crtpath, "server.csr"),
      servercrt = path.join(crtpath, "server.crt");
 
// this function will automatically apply SSL.createCSR && SSL.createPrivateKey functions
// if serverkey or servercsr does not exist
 
SSL.createCertificate(serverkey, servercsr, servercrt, "medium").then((keys) => {
 
   console.log(keys.privateKey);
   console.log(keys.CSR);
   console.log(keys.certificate);
   console.log(keys.options); // with conf default value added
 
   return new Promise((resolve) => {
 
       require("https").createServer({
          key: keys.privateKey,
          cert: keys.certificate
       }).listen(8000, resolve);
 
   });
 
}).catch((err) => {
   console.log(err);
});

Typescript

import SimpleSSL = require("simplessl");
const SSL = new SimpleSSL();
 
SSL.createCertificate(serverkey, servercsr, servercrt, "medium").then((data: iCertificate) => {
  console.log(data);
});

Tests

$ npm run-script tests

License

ISC

Readme

Keywords

Package Sidebar

Install

npm i simplessl

Weekly Downloads

0

Version

2.6.0

License

ISC

Unpacked Size

90 kB

Total Files

32

Last publish

Collaborators

  • psychopoulet