2013-07-13 22 views
9

Ho configurato il mio SSL enpoint e posso confermare che funziona. Quando vado nel mio log, vedo il seguente:Applicazione Node.js HTTPS su Heroku

Jul 13 08:14:10 support-dash app/web.1: Express server listening on port 17621 
Jul 13 08:14:10 support-dash heroku/web.1: Stopping all processes with SIGTERM 
Jul 13 08:14:11 support-dash heroku/web.1: State changed from starting to up 
Jul 13 08:14:13 support-dash heroku/web.1: Process exited with status 143 
Jul 13 08:15:48 support-dash heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/ host=app.supportdash.com fwd="68.63.87.85" dyno=web.1 connect=2ms service=30000ms status=503 bytes=0 
Jul 13 08:16:18 support-dash heroku/router: at=error code=H12 desc="Request timeout" method=GET path=/favicon.ico host=app.supportdash.com fwd="68.63.87.85" dyno=web.1 connect=2ms service=30007ms status=503 bytes=0 

ho cercato di rintracciare alcune informazioni sul codice di uscita 143, e perché tutti i processi vengono fermati. Controlla il seguente file server:

var http = require('http'); 
var https = require('https'); 
var fs = require('fs'); 
var express = require("express"); 

var app = express(); 

app.set('port', process.env.PORT || 3000); 
app.use(express.logger()); 

app.get('/', function(request, response) { 
    response.send('Hello World 2!'); 
}); 

var privateKey = fs.readFileSync(__dirname + '/ssl/server.key').toString(); 
var certificate = fs.readFileSync(__dirname + '/ssl/gandiSSL.pem').toString(); 

var options = { 
    key: privateKey, 
    cert: certificate 
}; 

https.createServer(options, app).listen(process.env.PORT, function() { 
    console.log("Express server listening on port " + app.get('port')); 
}); 

Grazie per il vostro feedback in anticipo. Posso fornire maggiori dettagli se necessario.

------ SOLUZIONE (EDIT) -------

Vedere la mia risposta qui sotto.

+1

Ehi Andrew, so che è molto tempo dopo il fatto ma dovresti postare la soluzione come risposta da solo e contrassegnarla come accettata! –

risposta

7

ho trovato la risposta qui: Heroku Error H13 on ExpressJS Node HTTPS Server

"terminazione SSL avviene al bilanciamento del carico di Heroku, mandano la vostra applicazione normale (non-SSL), il traffico, in modo dalla vostra applicazione dovrebbe creare un non-HTTPS server".

Poi ho cambiato la mia file:

var http = require('http'); 
var express = require("express"); 

var app = express(); 

app.set('port', process.env.PORT || 3000); 
app.use(express.logger()); 

app.get('/', function(request, response) { 
    console.log('[support dash] processing get request') 
    response.send('Hello World 2!'); 
}); 

app.listen(process.env.PORT, function() { 
    console.log('***** exp listening on port: ' + process.env.PORT); 
}); 

Tutto funziona grande non su https. In bocca al lupo!

+0

strano, quindi quando configuro il protocollo SSL non si deve fare nulla al codice NodeJS? come posso impostare i certificati? –

+1

Questa era un'altra parte confusa. I certs sono forniti tramite Heroku, non il tuo fornitore di nomi di dominio (che tenterà di vendere anche te certs). – AndrewJM

+0

oh, quindi non ho bisogno di comprarli? –

Problemi correlati