2017-09-22 4 views
2

最近私のサーバーにSSL証明書をインストールしようとしました。証明書ファイル(privkey.pem、fullchain.pem)は、アプリケーションのルートディレクトリにあります。Javascript http server:ERR_CONNECTION_REFUSED

var express = require('express'); 
var app = express(); 
var helmet = require('helmet'); 
var db = require('./server/database.js'); 
var fs = require('fs'); 
var ssl = require('ssl-root-cas'); 

'use strict'; 
var rootCas = require('ssl-root-cas/latest').create(); 

// default for all https requests 
// (whether using https directly, request, or another module) 
require('https').globalAgent.options.ca = rootCas; 

app.use(helmet()); 

var options = { 
    key : fs.readFileSync('privkey.pem', 'ascii'), 
    cert : fs.readFileSync('fullchain.pem', 'ascii') 
} 

app.get('/', function(req, res) { 
    res.sendFile(__dirname + '/public/index.html'); 
}); 
app.use('/public', express.static(__dirname + '/public')); 

var serv = require('https').createServer(options, app); 

サーバーはエラーなしで実行されます。 "サーバーはポート80でリッスンしています"という確認私はショーを追加しました。証明書は直接の問題を引き起こさないようです。しかし、(https://を使用して)ドメインに接続しようとすると、ChromeはERR_CONNECTION_REFUSEDで応答します。 http経由でドメインに接続すると、Chromeは同じメッセージで応答します。私はコードで後で初期化されるSocketIOを使用していますが、私の問題とSocketIOの機能の間に何らかの接続が見つかりませんでした。何が接続できない原因になっていますか?次のコードは問題なく働いた

+0

は、証明書を追加する前に作業してましたか? –

+0

はい、httpsのサポートを追加した後にのみ動作を停止しました。 –

+0

ログを見ることはできますか? –

答えて

0

HTTPS要求をポート443ではなく80を介して送信されます。

var express = require('express'); 
var app = express(); 
var helmet = require('helmet'); 
var db = require('./server/database.js'); 
var fs = require('fs'); 
var ssl = require('ssl-root-cas'); 

'use strict'; 
var rootCas = require('ssl-root-cas/latest').create(); 

// default for all https requests 
// (whether using https directly, request, or another module) 
require('https').globalAgent.options.ca = rootCas; 

app.use(helmet()); 

var options = { 
    key : fs.readFileSync('privkey.pem', 'ascii'), 
    cert : fs.readFileSync('fullchain.pem', 'ascii') 
} 

app.get('/', function(req, res) { 
    res.sendFile(__dirname + '/public/index.html'); 
}); 
app.use('/public', express.static(__dirname + '/public')); 

var serv = require('https').createServer(options, app); 
//var serv = require('https').Server(app); //DEBUG ONLY 
関連する問題