使用带有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用于/做什么的图片?
答案 0 :(得分:2)
HTTP谈论某种通信渠道。 TLS是一种允许您通过不安全的通信通道构建安全通信通道的协议。 HTTPS是围绕HTTP的TLS。从您的应用程序的角度来看(使用TLS通信通道),一切都将是纯文本,因为TLS正在为您处理所有加密和解密。