Yanıtlar:
Bkz Ekspres docs yanı sıra https.createServer için Düğüm dokümanlar (kullanımına tavsiye ettiğinin ifade edilir):
var privateKey = fs.readFileSync( 'privatekey.pem' );
var certificate = fs.readFileSync( 'certificate.pem' );
https.createServer({
key: privateKey,
cert: certificate
}, app).listen(port);
CreateServer için diğer seçenekler şu adrestedir: http://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener
createServeriçinde connect.js(sadece bu bağlantı devraldığı ifade). Doğru imzaya sahip bir işlev döndürdüğünü göreceksiniz. connect()basitçe bir takma addır connect.createServer()ve bu nedenle de öyledir express()(muhtemelen fazladan başlatma yapar, ancak sonuç yine de bir istek işleyicisi olarak kullanıma uygun bir işlevdir).
apptanımlanmıştır. Bu cevap tatmin edicidir.
Aşağıdaki standart kodla SSL çalıştırmayı başardım:
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");
});
Bu, ekspres 4.0 için çalışma kodum .
express 4.0, 3.0 ve diğerlerinden çok farklıdır.
4.0, https ekleyeceğiniz / bin / www dosyanız var.
"npm start", express 4.0 sunucusunu başlatmanın standart yoludur.
readFileSync () işlevi __dirname kullanmalı ve mevcut dizini al
gerektirirken () kullanın ./ geçerli dizine bakın.
Önce private.key ve public.cert dosyasını / bin klasörünün altına koyarsınız, WWW dosyası ile aynı klasördür .
böyle bir dizin bulunamadı hatası:
key: fs.readFileSync('../private.key'),
cert: fs.readFileSync('../public.cert')
hata, böyle bir dizin bulunamadı
key: fs.readFileSync('./private.key'),
cert: fs.readFileSync('./public.cert')
Çalışma kodu olmalıdır
key: fs.readFileSync(__dirname + '/private.key', 'utf8'),
cert: fs.readFileSync(__dirname + '/public.cert', 'utf8')
Tam https kodu:
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);