WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Node.js · Intermediate · question 33 of 100

How do you create a secure connection (HTTPS) in Node.js?

📕 Buy this interview preparation book: 100 Node.js questions & answers — PDF + EPUB for $5

Creating a secure HTTPS connection in Node.js involves using the built-in ‘https‘ module and providing necessary SSL/TLS certificates, such as the private key, certificate, and Certificate Authority (CA) certificate if required. Using these credentials, you create an HTTPS server instead of a regular HTTP server.

Follow these steps to create a secure connection (HTTPS) in Node.js:

1. Obtain SSL/TLS certificates: Before creating the HTTPS server, you need an SSL/TLS certificate. You can get a free SSL/TLS certificate from Let’s Encrypt or purchase one from a Certificate Authority like DigiCert or GlobalSign.

You should have the following files:

- ‘private-key.pem‘: Your private key

- ‘certificate.pem‘: Your SSL/TLS certificate

- ‘ca.pem‘: Your Certificate Authority (CA) certificate (if applicable)

2. Create an HTTPS server using the ‘https‘ module and required certificates:

Here’s an example of an HTTPS server in Node.js:

const https = require('https');
const fs = require('fs');
const express = require('express');

const privateKey = fs.readFileSync('private-key.pem', 'utf8');
const certificate = fs.readFileSync('certificate.pem', 'utf8');
const ca = fs.readFileSync('ca.pem', 'utf8');

const credentials = {
  key: privateKey,
  cert: certificate,
  ca: ca
};

const app = express();

app.get('/', (req, res) => {
  res.send('Hello, this is a secure HTTPS server!');
});

const httpsServer = https.createServer(credentials, app);

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

In this example, we use the ‘https‘ module to create an HTTPS server. We first read the required credentials (private key, certificate, and CA) from their respective files with the ‘fs‘ module. Next, we create an ‘express‘ app and define a simple route for the root path ("/").

Finally, we use ‘https.createServer()‘ to create the HTTPS server with the provided credentials and the ‘express‘ app. We then bind the HTTPS server to port 3000 with the ‘listen()‘ method.

Now, your server will serve the content over a secure connection (using HTTPS) instead of regular HTTP. Make sure to replace the file names in the ‘fs.readFileSync()‘ calls with the correct paths to your certificate files.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Node.js interview — then scores it.
📞 Practice Node.js — free 15 min
📕 Buy this interview preparation book: 100 Node.js questions & answers — PDF + EPUB for $5

All 100 Node.js questions · All topics