답변:
https.createServer에 대한 노드 문서 와 Express 문서 를 참조하십시오 ( 표현식 사용 권장).
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
createServer
in 의 정의를 살펴보십시오 connect.js
(express는 단지 이것을 connect에서 상속합니다). 올바른 서명을 가진 함수를 반환한다는 것을 알 수 있습니다. connect()
는 단순히 별칭 connect.createServer()
이며 따라서 express()
추가 초기화를 수행하지만 결과는 여전히 요청 처리기로 사용하기에 적합한 함수입니다.
app
정의됩니다. 이 답변은 만족합니다.
다음 상용구 코드로 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");
});
이것은 Express 4.0의 작업 코드 입니다 .
express 4.0은 3.0과는 매우 다릅니다.
4.0 / bin / www 파일이 있으며 여기에 https를 추가합니다.
"npm start"는 Express 4.0 서버를 시작하는 표준 방법입니다.
readFileSync () 함수는 __dirname get current directory를 사용해야합니다.
require () use ./ 는 현재 디렉토리를 참조하십시오.
먼저 private.key 및 public.cert 파일을 / bin 폴더에 넣습니다 . 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);