2017-09-22 1 views
2

최근에 내 서버에 SSL 인증서를 설치하려고했습니다. 인증서 파일 (privkey.pem, fullchain.pem)은 응용 프로그램의 루트 디렉토리에 있습니다. 다음 코드를 실행할 때 :자바 스크립트 http 서버 : 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