我遵循了在node中设置ssl的教程。http://blog.nategood.com/nodejs-ssl-client-cert-auth-api-rest
在这里,证书文件是通过将options对象传递给createServer来加载的
var options = {
key: fs.readFileSync('ssl/server.key'),
cert: fs.readFileSync('ssl/server.crt'),
ca: fs.readFileSync('ssl/ca.crt'),
requestCert: true,
rejectUnauthorized: false
};
https.createServer(options, function (req, res) {
if (req.client.authorized) {
res.writeHead(200, {"Content-Type": "application/json"});
res.end('{"status":"approved"}');
} else {
res.writeHead(401, {"Content-Type": "application/json"});
res.end('{"status":"denied"}');
}
}).listen(443);
然而,我使用express来满足我的应用服务器需求。
流程是这样的:
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('hello world');
});
app.listen(3000);
我应该在哪里传入证书详细信息?
发布于 2015-10-09 12:25:23
只需在https.createServer
回调中传递express应用程序对象:
var express = require('express');
var app = express();
var options = {
key: fs.readFileSync('ssl/server.key'),
cert: fs.readFileSync('ssl/server.crt'),
ca: fs.readFileSync('ssl/ca.crt'),
requestCert: true,
rejectUnauthorized: false
};
app.get('/', function(req, res){
res.send('hello world');
});
https.createServer(options, app).listen(3000);
https://stackoverflow.com/questions/33036355
复制相似问题