express.js https服务器noob

时间:2014-12-24 20:45:16

标签: javascript node.js encryption express

使用带有express的node.js我已经制作了一个简单的https服务器。出于测试目的,我已经发布了一个基本的登录表单,该表单将发布到此https服务器。

我的期望是通过简单地做:

var app = require('../app');
var https = require('https');
var fs = require('fs');

// I used openssl to generate a ssl certificate
var pkey = fs.readFileSync('key.pem');
var pcert = fs.readFileSync('cert.pem');

var options = {
    key: pkey,
    cert: pcert
};
var httpsServer = https.createServer(options, app);

httpsServer.listen(8081, 'localhost');

发布到/login的数据将被正确加密:

var express = require('express');
var router = express.Router();

router.post('/login', function(req, res) {
    console.log(req.body); // this is the post data sent from client
});

我希望req.body看起来像'加密'数据,因为我没有中间件解密任何东西,而是我得到{name: 'abc', 'password': '123'}。我是否错过了此过程中的一个步骤,或节点https模块是否处理所有加密/解密内容?或者我完全错过了https用于/做什么的图片?

1 个答案:

答案 0 :(得分:2)

HTTP谈论某种通信渠道。 TLS是一种允许您通过不安全的通信通道构建安全通信通道的协议。 HTTPS是围绕HTTP的TLS。从您的应用程序的角度来看(使用TLS通信通道),一切都将是纯文本,因为TLS正在为您处理所有加密和解密。