|
|
- 'use strict';
-
- const selfsigned = require('selfsigned');
-
- function createCertificate(attributes) {
- return selfsigned.generate(attributes, {
- algorithm: 'sha256',
- days: 30,
- keySize: 2048,
- extensions: [
- {
- name: 'basicConstraints',
- cA: true,
- },
- {
- name: 'keyUsage',
- keyCertSign: true,
- digitalSignature: true,
- nonRepudiation: true,
- keyEncipherment: true,
- dataEncipherment: true,
- },
- {
- name: 'extKeyUsage',
- serverAuth: true,
- clientAuth: true,
- codeSigning: true,
- timeStamping: true,
- },
- {
- name: 'subjectAltName',
- altNames: [
- {
- // type 2 is DNS
- type: 2,
- value: 'localhost',
- },
- {
- type: 2,
- value: 'localhost.localdomain',
- },
- {
- type: 2,
- value: 'lvh.me',
- },
- {
- type: 2,
- value: '*.lvh.me',
- },
- {
- type: 2,
- value: '[::1]',
- },
- {
- // type 7 is IP
- type: 7,
- ip: '127.0.0.1',
- },
- {
- type: 7,
- ip: 'fe80::1',
- },
- ],
- },
- ],
- });
- }
-
- module.exports = createCertificate;
|