4 min read
•Question 45 of 62mediumHow 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 -nodesHTTPS 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
});