21

I want to create a https server for my localhost.
Node JS documentation provides out of the box solution but I have some confusion with it. Example

var https = require('https');
var fs = require('fs');

var options = {
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};

https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(8000);

Or

var options = {
  pfx: fs.readFileSync('server.pfx')
};

Here how would I get key, cert or pfx for my localhost?

3 Answers 3

39

For development purposes you can create a self-certified certificate. Here's how to do it on a linux-based system:

First, generate a private key

openssl genrsa 1024 > key.pem

This will store a 1024 bit RSA key in the file key.pem

Then, generate an SSL certificate with that key:

openssl req -x509 -new -key key.pem > key-cert.pem

Now, you can use key.pem and key-cert.pem in the options you pass to createServer.

Sign up to request clarification or add additional context in comments.

Comments

2

the .pfx file is a "bundle" maded of the key.pem , cert.pem and sometimes a (CA file) files.

You should get(pay) / make(testing etc) a https certificate.

Comments

0

This is called self-signed certificate, and you can generate it with one command by openssl. Just type:

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

in the terminal.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.