首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >expressjs 4.x和https,生成密钥和证书

expressjs 4.x和https,生成密钥和证书
EN

Stack Overflow用户
提问于 2014-07-09 06:52:28
回答 1查看 936关注 0票数 0

我想用express 4.x创建一个https服务器。即使在google上找到的很多代码都是基于express 3.x的,我认为我做了正确的移植。

即使我尝试goole,我也不是很清楚如何生成密钥。没有钥匙我希望是401。

我尝试使用在此gist中找到的脚本。但我一直收到错误Error: DEPTH_ZERO_SELF_SIGNED_CERT

我想用curlrequestsuper test来测试它。

这是我实际拥有的:

server.js

代码语言:javascript
复制
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

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

发布于 2014-07-09 07:21:04

使用cURL,您可以使用-k标志绕过自签名证书问题。

使用request,您只需在请求选项中设置rejectUnauthorized: false

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24642761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档