¿Cómo configuro Google Compute Engine para utilizar HTTPS para el servidor de nodejs?

Quiero ejecutar el servidor nodejs & socket.io en el motor de cálculo de Google con https / SSL.

Instalé un certificado autofirmado de https://cloud.google.com/compute/docs/load-balancing/http/ssl-certificates .

Ahora, ¿Cómo habilito el servidor de nodejs para usar el protocolo https?

Gracias,

A continuación se muestra el código, que utilicé para HTTPS en 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); 

Con respecto al motor de cómputo de Google, solo necesita habilitar el puerto 443 desde el firewall.

 gcloud compute firewall-rules create allow-https --description "https server" --allow tcp:443 --format json 

Necesita una serie de cosas para configurar un servidor nodeJS para usar HTTPs. Yo sugeriría que Nginx ( http://nginx.org/en/docs/http/configuring_https_servers.html ) configure las conexiones del puerto https 443 para terminar en la capa nginx. Luego haga un proxy de todas estas conexiones utilizando la directiva proxy_pass en Nginx a su servidor NodeJS. Podrías usar la directiva upstream en Nginx también.

También tendría que hacer esto en una configuración no https, ya que nodeJS no debería escuchar en el puerto 80 predeterminado ya que es un puerto del sistema, y ​​nodeJS no le permitirá iniciar el proceso a menos que se ejecute como sudo (de nuevo no recomendado).

    Intereting Posts