2013-07-13 19 views
9

私は自分のSSL enpointを設定しており、それが動作していることを確認できます。私は私のログに行くとき、私は以下を参照してください。HerokuのHTTPS Node.jsアプリケーション

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 

私は、終了コード143のいくつかの情報を追跡しようとした、そしてなぜ、すべてのプロセスが停止されています。次のサーバファイルを確認してください:

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')); 
}); 

フィードバックをいただきありがとうございます。必要に応じて詳細を提供することができます。

------ SOLUTION(EDIT)-------

下記の私の答えを参照してください。

+1

こんにちはアンドリュー、私はこれが事実の後に長い時間だと知っていますが、解答として自分自身を投稿し、受け入れられるとマークする必要があります! –

答えて

7

私はここで答えを見つけました:Heroku Error H13 on ExpressJS Node HTTPS Server

「SSLターミネーションは、Herokuののロードバランサで発生し、彼らはアプリの平野(非SSL)トラフィックを送信するので、あなたのアプリが非HTTPSサーバーを作成する必要があります。」

私は、その後に自分のファイルを変更:すべてがHTTPS上で偉大なしに取り組んでいる

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); 
}); 

。がんばろう!

+0

奇妙なので、SSLを設定するときにNodeJSコードに何もしないでください。どのように証明書を設定するのですか? –

+1

これは別の混乱する部分でした。証明書は、あなたのドメイン名プロバイダ(あなたにも証明書を販売しようとする)ではなく、Herokuを通じて提供されます。 – AndrewJM

+0

ああ、私はそれらを購入する必要はありませんか? –

関連する問題