I want to run nodejs & socket.io server in google compute engine with https / SSL.
I installed self-signed certificate from https://cloud.google.com/compute/docs/load-balancing/http/ssl-certificates.
Now, How Do I enable nodejs server to use https protocol?
Thanks,
js. To built an HTTPS server with nodeJs, we need an SSL (Secure Sockets Layer) certificate. We can create a self-signed SSL certificate on our local machine. Let's first create an SSL certificate on our machine first.
Below is the code, which I used for HTTPS in nodejs,
var app = require('express')();
var https = require('https');
var fs = require('fs');
var PORT = 443;
var options = {
key: fs.readFileSync('XYZ.key'),
cert: fs.readFileSync('ABC.crt')
};
var server = https.createServer(options, app).listen(PORT, function () {
console.log("Express listening on port " + PORT);
});
// Post request.
var req_res = function (req, res) {
console.log("[200] " + req.url);
var fullBody = '';
// Read post data.
req.on('data', function (chunk) {
fullBody += chunk.toString();
if (fullBody.length > 1e6) {
// FLOOD ATTACK OR FAULTY CLIENT, NUKE REQUEST
req.connection.destroy();
}
});
// Send response.
req.on('end', function () {
// empty 200 OK response for now
res.writeHead(200, {
'Content-Type': 'application/json'
});
res.end(JSON.stringify({
'success': true
}));
});
};
// Hello World
app.get('/*', function (req, res) {
res.status(200).send('Hello World...');
});
// Post request to receive notifications.
app.post('/post', req_res);
Regarding google compute engine, you just need to enable 443 port from firewall.
gcloud compute firewall-rules create allow-https --description "https server" --allow tcp:443 --format json
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With