express.js 서버의 SSL 인증서를 설정하려면 어떻게 해야 합니까?
이전 버전의 express에서는 다음을 수행할 수 있었습니다.
express.createServer({key:'keyFile', cert:'certFile'});
그러나 express의 최신 버전에서는 더 이상 작동하지 않습니다.
var app = express();
전화할까요?app.use()
자격증을 따려고요?만약 그렇다면, 어떻게?
Express 문서뿐만 아니라 https.createServer(익스프레스에서 사용하는 것이 권장되는 서버)의 노드 문서도 참조하십시오.
var privateKey = fs.readFileSync( 'privatekey.pem' );
var certificate = fs.readFileSync( 'certificate.pem' );
https.createServer({
key: privateKey,
cert: certificate
}, app).listen(port);
createServer의 다른 옵션은 http://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener 에 있습니다.
다음과 같은 boilplate 코드로 SSL을 작동하는 SSL을 얻을 수 있었습니다.
var fs = require('fs'),
http = require('http'),
https = require('https'),
express = require('express');
var port = 8000;
var options = {
key: fs.readFileSync('./ssl/privatekey.pem'),
cert: fs.readFileSync('./ssl/certificate.pem'),
};
var app = express();
var server = https.createServer(options, app).listen(port, function(){
console.log("Express server listening on port " + port);
});
app.get('/', function (req, res) {
res.writeHead(200);
res.end("hello world\n");
});
이것이 익스프레스 4.0의 제 작업 코드입니다.
express 4.0은 3.0과 다른것들과 매우 다릅니다.
4.0 여기에 https를 추가할 /bin/www 파일이 있습니다.
"npm start"는 express 4.0 서버를 시작하는 표준 방식입니다.
readFileSync() 함수는 __dirname get current 디렉토리를 사용해야 합니다.
() use ./가 필요한 경우 현재 디렉토리를 참조합니다.
먼저 당신은 비밀로 합니다./bin 폴더 아래에 있는 key and public.cert 파일, WWW 파일과 동일한 폴더입니다..
해당 디렉토리를 찾을 수 없습니다.
key: fs.readFileSync('../private.key'),
cert: fs.readFileSync('../public.cert')
오류. 해당 디렉토리를 찾을 수 없습니다.
key: fs.readFileSync('./private.key'),
cert: fs.readFileSync('./public.cert')
작업 코드는 다음과 같아야 합니다.
key: fs.readFileSync(__dirname + '/private.key', 'utf8'),
cert: fs.readFileSync(__dirname + '/public.cert', 'utf8')
전체 https 코드는 다음과 같습니다.
const https = require('https');
const fs = require('fs');
// readFileSync function must use __dirname get current directory
// require use ./ refer to current directory.
const options = {
key: fs.readFileSync(__dirname + '/private.key', 'utf8'),
cert: fs.readFileSync(__dirname + '/public.cert', 'utf8')
};
// Create HTTPs server.
var server = https.createServer(options, app);
언급URL : https://stackoverflow.com/questions/11804202/how-do-i-setup-a-ssl-certificate-for-an-express-js-server
'IT' 카테고리의 다른 글
C의 하드코드 바이트 배열 (0) | 2023.10.10 |
---|---|
mariadb docker 컨테이너가 부팅을 시작하지 않도록 교육하는 방법 (0) | 2023.10.10 |
MySQL: ALTER 무시 테이블 고유 추가, 무엇이 잘릴까요? (0) | 2023.10.10 |
XSD: 강력한 형식의 "단순한" 요소에 속성 추가 (0) | 2023.10.10 |
바니쉬 + nginx SSL + woocmerce - wc-ajax가 작동하지 않음 (0) | 2023.10.10 |