질문 : express.js에서 HTTPS 활성화
노드 용 express.js에서 HTTPS를 사용하려고하는데 알아낼 수 없습니다.
이것은 내 app.js
코드입니다.
var express = require('express');
var fs = require('fs');
var privateKey = fs.readFileSync('sslcert/server.key');
var certificate = fs.readFileSync('sslcert/server.crt');
var credentials = {key: privateKey, cert: certificate};
var app = express.createServer(credentials);
app.get('/', function(req,res) {
res.send('hello');
});
app.listen(8000);
실행하면 HTTP 요청에만 응답하는 것 같습니다.
간단한 바닐라 node.js
기반 HTTPS 앱을 작성했습니다.
var fs = require("fs"),
http = require("https");
var privateKey = fs.readFileSync('sslcert/server.key').toString();
var certificate = fs.readFileSync('sslcert/server.crt').toString();
var credentials = {key: privateKey, cert: certificate};
var server = http.createServer(credentials,function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
});
server.listen(8000);
나는이 응용 프로그램을 실행할 때, 그것은 HTTPS 요청에 응답을한다. 두 가지 조합을 사용했지만 여전히 es bueno가 없기 때문에 fs 결과의 toString ()이 중요하지 않다고 생각합니다.
추가하려면 수정 :
프로덕션 시스템의 경우 Nginx 또는 HAProxy를 사용하여 nodejs 앱에 대한 요청을 프록시하는 것이 좋습니다. nginx를 설정하여 SSL 요청을 처리하고 노드 app.js에 http를 말하면됩니다.
추가하려면 수정 (2015 년 4 월 6 일)
AWS를 사용하는 시스템의 경우 EC2 Elastic Load Balancer를 사용하여 SSL 종료를 처리하고 EC2 웹 서버에 대한 정기적 인 HTTP 트래픽을 허용하는 것이 좋습니다. 추가 보안을 위해 ELB 만 HTTP 트래픽을 EC2 인스턴스로 보낼 수 있도록 보안 그룹을 설정하면 암호화되지 않은 외부 HTTP 트래픽이 머신에 도달하지 못합니다.
답변
express.js (버전 3부터)에서는 다음 구문을 사용해야합니다.
var fs = require('fs');
var http = require('http');
var https = require('https');
var privateKey = fs.readFileSync('sslcert/server.key', 'utf8');
var certificate = fs.readFileSync('sslcert/server.crt', 'utf8');
var credentials = {key: privateKey, cert: certificate};
var express = require('express');
var app = express();
// your express configuration here
var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);
httpServer.listen(8080);
httpsServer.listen(8443);
그런 식으로 네이티브 http / https 서버에 익스프레스 미들웨어를 제공합니다.
1024 미만의 포트에서 앱을 실행하려면 sudo
명령 (권장하지 않음)을 사용하거나 역방향 프록시 (예 : nginx, haproxy)를 사용해야합니다.
출처 : https://stackoverflow.com/questions/11744975/enabling-https-on-express-js
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
JavaScript에서 정의되지 않은 변수 또는 null 변수를 확인하는 방법 (0) | 2021.07.06 |
---|---|
JavaScript 자주 쓰는 정규식 모음 (아이디, 이메일, 비밀번호, 전화번호,...) (2) | 2021.07.03 |
HTML 양식에서 자동 완성을 비활성화하는 W3C 유효한 방법 (0) | 2021.07.02 |
iframe에 CSS를 적용하는 방법 (0) | 2021.07.02 |
Ruby on Rails에서 JSON 출력을 "예쁘게" 형식화하는 방법 (0) | 2021.07.02 |