#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
4 min read
Question 45 of 62medium

How to create HTTPS servers in Node.js?

Secure HTTP servers with TLS/SSL.

What You'll Learn

  • Creating HTTPS servers
  • SSL certificates
  • HTTPS requests

HTTPS Server

code.jsJavaScript
const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('private-key.pem'),
  cert: fs.readFileSync('certificate.pem')
};

const server = https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('Hello Secure World!');
});

server.listen(443, () => {
  console.log('HTTPS server running on port 443');
});

With Express

code.jsJavaScript
const https = require('https');
const express = require('express');
const fs = require('fs');

const app = express();

app.get('/', (req, res) => {
  res.send('Secure Express!');
});

const options = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
};

https.createServer(options, app).listen(443);

Self-Signed Certificate (Development)

$ terminalBash
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

HTTPS Requests

code.jsJavaScript
const https = require('https');

https.get('https://api.example.com/data', (res) => {
  let data = '';
  res.on('data', chunk => data += chunk);
  res.on('end', () => console.log(JSON.parse(data)));
}).on('error', console.error);

// Skip certificate validation (dev only!)
const agent = new https.Agent({
  rejectUnauthorized: false
});