Generates OpenSSL Certificate Signing Requests in node.js
MIT License
Generates an OpenSSL key and CSR
$ openssl
if you aren't sure)npm install csr-gen
OR download from github and place in ./node_modules
var csrgen = require('csr-gen');
var fs = require('fs');
var domain = 'exampledomain.com';
csrgen(domain, {
outputDir: __dirname,
read: true,
company: 'Example, Inc.',
email: '[email protected]'
}, function(err, keys){
console.log('CSR created!')
console.log('key: '+keys.private);
console.log('csr: '+keys.csr);
});
CSR will perform the following shell command:
$ openssl req -nodes -newkey rsa:2048 -keyout ./exampledomain.com.key -out ./exampledomain.com.csr -subj '/C=US/ST=California/L=San Fransisco/O=FooBar/OU=Operations/CN=foobar.com/[email protected]'
Generating a 2048 bit RSA private key
...................................................................+++
................................................................................................................................+++
writing new private key to './exampledomain.com.key'
-----
And you're done! Adding the -subj (above) switch allows us to skip the following familiar process!
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:California
Locality Name (eg, city) []:San Francisco
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example, Inc.
Organizational Unit Name (eg, section) []:Operations
Common Name (eg, YOUR name) []:exampledomain.com
Email Address []:[email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
domain+'.key'
domain+'.csr'
It is advisable to generate your keys on a machine with a significant random source like one with a mouse/trackpad.
csr-gen is open source under the MIT license
Contributors welcome!