Étant donné une clé SSL et un certificat, comment créer un service HTTPS?
Réponses
Trop de publicités?Le document API Express énonce clairement cela. J'ai ajouté quelques commentaires et un extrait de la documentation HTTPS Node.js :
var express = require('express');
var https = require('https');
var http = require('http');
var fs = require('fs');
// This line is from the Node.js HTTPS documentation.
var options = {
key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};
// Create a service (the app object is just a callback).
var app = express();
// Create an HTTP service.
http.createServer(app).listen(80);
// Create an HTTPS service identical to the HTTP service.
https.createServer(options, app).listen(443);
J'ai trouvé cet exemple. Il a quelques mois, mais ça pourrait être bien:
http://www.silassewell.com/blog/2010/06/03/node-js-https-ssl-server-example/
Directement de cette source
const crypto = require('crypto'),
fs = require("fs"),
http = require("http");
var privateKey = fs.readFileSync('privatekey.pem').toString();
var certificate = fs.readFileSync('certificate.pem').toString();
var credentials = crypto.createCredentials({key: privateKey, cert: certificate});
var handler = function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
};
var server = http.createServer();
server.setSecure(credentials);
server.addListener("request", handler);
server.listen(8000);
J'ai trouvé cette question en recherchant "node https" mais l'exemple dans la réponse acceptée est très ancien - tiré des docs de la version actuelle du noeud (v0.10), il devrait ressembler à ceci:
var https = require('https');
var fs = require('fs');
var options = {
key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};
https.createServer(options, function (req, res) {
res.writeHead(200);
res.end("hello world\n");
}).listen(8000);
Les réponses ci-dessus sont bonnes, mais avec Express et le noeud cela fonctionnera bien.
Depuis express créer l'application pour vous, je vais passer ici.
var express = require('express')
, fs = require('fs')
, routes = require('./routes');
var privateKey = fs.readFileSync('cert/key.pem').toString();
var certificate = fs.readFileSync('cert/certificate.pem').toString();
// To enable HTTPS
var app = module.exports = express.createServer({key: privateKey, cert: certificate});