npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

Iโ€™ve always been into building performant and accessible sites, but lately Iโ€™ve been taking it extremely seriously. So much so that Iโ€™ve been building a tool to help me optimize and monitor the sites that I build to make sure that Iโ€™m making an attempt to offer the best experience to those who visit them. If youโ€™re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, ๐Ÿ‘‹, Iโ€™m Ryan Hefnerย  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If youโ€™re interested in other things Iโ€™m working on, follow me on Twitter or check out the open source projects Iโ€™ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soonโ€“ish.

Open Software & Tools

This site wouldnโ€™t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you ๐Ÿ™

ยฉ 2025 โ€“ย Pkg Stats / Ryan Hefner

generate-certs

v2.1.1

Published

๐Ÿ—๏ธ Effortless HTTPS Certificate Generation for Local Development

Downloads

1,330

Readme

Why generate-certs? ๐Ÿค”

  • ๐Ÿ” Automatic Certificate Generation โ€“ Creates valid self-signed certificates for localhost.
  • ๐Ÿ” Reusability โ€“ Automatically detects and reuses existing certs if they exist.
  • ๐Ÿงช Development-Ready โ€“ Ideal for testing HTTPS locally without browser complaints.
  • ๐Ÿ’ก Minimal Setup โ€“ No OpenSSL or third-party installations required.
  • ๐Ÿงฉ Framework Friendly โ€“ Easily integrates with Express, NestJS, and other Node.js frameworks.

Installation ๐Ÿ”ฅ

npm install -D generate-certs@latest
# or
yarn add -D generate-certs@latest
# or
pnpm install -D generate-certs@latest
# or
bun add -d generate-certs@latest

Usage ๐Ÿช›

Basic Example ๐Ÿฃ

import path from "node:path";
import { fileURLToPath } from "node:url";
import { generateCerts } from "generate-certs";

// If you are using ESM do the following, otherwise you can skip this part
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const certs = generateCerts({ certsPath: path.resolve(__dirname, "../certs") });

Express ๐Ÿ“ซ

import https from "node:https";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { generateCerts } from "generate-certs";
import express from "express";
import { env } from "./env";

const __dirname = path.dirname(fileURLToPath(import.meta.url));
const certs = generateCerts({ certsPath: path.resolve(__dirname, "../certs") });

function bootstrap() {
  const app = express();

  https.createServer(certs, app).listen(env.PORT || 3443, () => {
    console.log(`๐Ÿš€ Express server running on: https://localhost:${env.PORT || 3443}`);
  });
}

bootstrap();

NestJS ๐Ÿชบ

import path from "node:path";
import { NestFactory } from "@nestjs/core";
import { generateCerts } from "generate-certs";
import { AppModule } from "./app.module";
import { env } from "./env";

// NestJS commonly uses CommonJS, so you can skip the ESM import part
const certs = generateCerts({ certsPath: path.resolve(__dirname, "../certs") });

async function bootstrap() {
  const app = await NestFactory.create(AppModule, {
    httpsOptions: certs,
  });

  await app.listen(env.SERVER_PORT || 3443);
  console.log(`๐Ÿš€ NestJS server running on: https://localhost:${env.SERVER_PORT || 3443}`);
}

bootstrap();

HonoJS ๐Ÿ”ฅ

import { createSecureServer } from "node:http2";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { serve } from "@hono/node-server";
import { generateCerts } from "generate-certs";
import { Hono } from "hono";
import { env } from "./env";

const __dirname = path.dirname(fileURLToPath(import.meta.url));
const certs = generateCerts({ certsPath: path.resolve(__dirname, "../certs") });

function bootstrap() {
  const app = new Hono();

  serve(
    {
      fetch: app.fetch,
      port: env.PORT || 3443,
      createServer: createSecureServer,
      serverOptions: certs,
    },
    (info) => {
      console.log(`๐Ÿš€ HonoJS server running on: https://localhost:${env.PORT || 3443}`);
    },
  );
}

bootstrap();

Fastify โšก

import path from "node:path";
import { fileURLToPath } from "node:url";
import Fastify from "fastify";
import { generateCerts } from "generate-certs";
import { env } from "./env";

const __dirname = path.dirname(fileURLToPath(import.meta.url));
const certs = generateCerts({ certsPath: path.resolve(__dirname, "../certs") });

async function bootstrap() {
  const app = new Fastify({ https: certs });

  await app.listen({ port: env.PORT || 3443, host: "0.0.0.0" });
  console.log(`๐Ÿš€ Fastify server running on: https://localhost:${env.PORT || 3443}`);
}

bootstrap();

Notesโ—

  • ๐Ÿงช First-Time Run: The certs are created automatically and stored in the provided folder.
  • โš ๏ธ Browser Warnings: You may see โ€œNot Secureโ€ warnings with self-signed certs โ€” click โ€œAdvancedโ€ โ†’ โ€œProceed to localhost (unsafe)โ€ to continue.
  • ๐Ÿ”’ Not for Production: These are local dev certificates. For production, use certs from a trusted CA (like Let's Encrypt).
  • ๐Ÿ“ Permissions: Ensure the target folder is writable and readable by your application.

Contributions ๐Ÿค

Want to contribute or suggest a feature or improvement?

  • Open an issue or feature request
  • Submit a PR to improve the packages or add new ones
  • Star โญ the repo if you like what you see