我想用express 4.x创建一个https服务器。即使在google上找到的很多代码都是基于express 3.x的,我认为我做了正确的移植。
即使我尝试goole,我也不是很清楚如何生成密钥。没有钥匙我希望是401。
我尝试使用在此gist中找到的脚本。但我一直收到错误Error: DEPTH_ZERO_SELF_SIGNED_CERT。
我想用curl、request和super test来测试它。
这是我实际拥有的:
server.js
var express = require('express')
, https = require('https')
, fs = require('fs');
var privateKey = fs.readFileSync('./server/server-private-key.pem').toString();
var certificate = fs.readFileSync('./server/server-certificate.pem').toString();
var options = {
key : privateKey
, cert : certificate
}
var app = express();
app.get('/', function(req, res) {
req.client.authorized ?
res.json({"status":"approved"}) :
res.json({"status":"denied"}, 401);
});
server = https.createServer(options,app);
var port = 12345;
server.listen(port, function(){
console.log("Express server listening on port " + port);
});client.js
var https = require('https');
var fs = require('fs');
var options = {
host: 'localhost',
port: 12345,
method: 'GET',
path: '/',
key: fs.readFileSync('./client/client-private-key.pem'),
cert: fs.readFileSync('./client/client-certificate.pem'),
headers: {}
};
var req = https.request(options, function(res) {
console.log('dudee');
console.log(res);
});
req.end();发布于 2014-07-09 07:21:04
使用cURL,您可以使用-k标志绕过自签名证书问题。
使用request,您只需在请求选项中设置rejectUnauthorized: false。
https://stackoverflow.com/questions/24642761
复制相似问题