1.0.2 • Published 5 years ago
@raha.group/self-cert v1.0.2
self-cert
This is a simple library for generating a self-signed x509 keypair and certificate.
Installation
CDN
Import library from the UNPKG CDN for fast and easy setup:
import {create} from "//unpkg.com/@raha.group/self-cert?module";NPM registry
Use the package manager npm to install self-cert.
$ npm install "@raha.group/self-cert"Usage
Self-signed Certificate
1) Create a new project with the entry point "index.mjs".
2) Add the project dependency by npm i "@raha.group/self-cert".
3) Put the following script in file "index.mjs".
import {create as createCertificate} from '@raha.group/self-cert';
import fs from 'fs/promises';
import os from 'os';
let hosts = [];
for (let networkInterface of Object.values(os.networkInterfaces())) {
	for (let assignedNetworkAddress of networkInterface) {
		hosts.push(assignedNetworkAddress.address);
	}
}
let certificate = createCertificate({
	domains: [ // List the hostnames (including wildcards) on your origin that the certificate should protect.
		'localhost',
		'*.local', // wildcards
		...hosts
	],
	expires: new Date(2025, 1),
	/*
	attributes: {
		commonName: domains[0],
		countryName: 'IR',
		stateName: 'Isfahan',
		locality: 'Isfahan',
		organizationName: 'None',
	},
	keySize: 2048,
	*/
});
await fs.writeFile('privateKey.pem', certificate.privateKey);
await fs.writeFile('publicKey.pem', certificate.publicKey);
await fs.writeFile('fullChain.pem', certificate.fullChain);Basic HTTPS
Here is an example for creating an SSL key/cert on the fly, and running an HTTPS server on port 443. Use https://localhost:443 to access created server.
import {create as createCertificate} from '@raha.group/self-cert';
import https from 'https';
let certificate = createCertificate({
	domains: ['localhost'],
});
https.createServer({key: certificate.privateKey, cert: certificate.fullChain}, function(request, response) {
	response.end('Hello World :-)');
}).listen(443);