Como configurar o HTTPS usando o Lets Encrypt, Node e Express 4

1

O que eu fiz

Eu usei certbot para certificar que eu possuo meu domínio, o que gerou vários arquivos .pem . Os certificados estão listados aqui: link

Eu encontrei este post que faz sentido e corresponde a todos as outras informações que estou recebendo do Googling, mas quando faço isso e executo o nó não consigo me conectar ao meu site usando https. O Http funciona bem como sempre.

Meu servidor é express.js + node.js e não estou usando um proxy reverso como nginx. Está sendo executado no Ubuntu no Google Cloud Platform.

O código relevante é:

var http = require('http');
var https = require('https');
var privateKey  = fs.readFileSync('/etc/letsencrypt/live/troywolters.com/privkey.pem', 'utf8');
var certificate = fs.readFileSync('/etc/letsencrypt/live/troywolters.com/fullchain.pem', 'utf8');
var credentials = {key: privateKey, cert: certificate};
var app = express();

// Lots of other express stuff (app.use()'s)

var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);
httpServer.listen(80);
httpsServer.listen(443);

O que não funciona

Quando tento conectar-me ao meu site usando o link , a conexão expira e nada acontece. O que estou fazendo errado?

    
por TW80000 25.03.2017 / 03:19

1 resposta

0

A resposta para o problema foi que minha plataforma de hospedagem (Google Cloud Platform) não permitia a porta 443 por meio do firewall na configuração padrão. Correndo

gcloud compute firewall-rules create allow-https --description "Incoming https allowed." --allow tcp:443

permitiu o tráfego de entrada pela porta 443 e corrigiu o problema.

Obrigado a Michael Hampton pela dica.

    
por 25.03.2017 / 06:34