Skip to content

Gamote/cert127

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cert127

npm version npm downloads/month GitHub license

Small utility to generate 🔒 trusted self-signed certificates for local development.

Prerequisites

This package requires mkcert to be installed on your system. Please follow the installation instructions for your platform.

Installation

# With Yarn
yarn add cert127

# or with npm
npm i cert127

Usage

import cert127 from 'cert127';

const { key, cert } = await cert127();

Example

Let's create a quick Fastify server with the listening socket configured for TLS:

import cert127 from 'cert127';
import Fastify from 'fastify';

/**
 * Run the server!
 */
const start = async () => {
  const fastify = Fastify({ https: await cert127() });

  fastify.get('/secure', (req, reply) =>
    reply.send("There is no place like 127.0.0.1 🏠"));

  await fastify.listen({ port: 3000 });
};

void start();

Now you can open https://localhost:3000/secure in your browser and see:

There is no place like 127.0.0.1 🏠

IMPORTANT: This will not work on production, as it is meant only for local development.

✨ Roadmap

  • Try to include the mkcert binary in the package, so that it can be used without installing it on the system. (check node-pre-gyp)
  • Make it a class, so we offer more ways to retrieve the cert
  • Add a check to see if mkcert is installed and if not, install it
  • Make sure that mkcert was initialized: mkcert -install
  • Add a check to see if the certificate is already created and ask the user if they want to overwrite it
  • Add more options for customizations (e.g. hosts, expiration time etc.)
  • Add a way to revoke the certificate
  • Add a way to check if the certificate is valid
  • Allow creating multiple certificates
  • Add tests
  • Add CI/CD
  • Add ESLint and Prettier
  • Add sync method