You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							69 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							69 lines
						
					
					
						
							1.3 KiB
						
					
					
				'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;
 | 
						|
 |