【问题标题】:express.js https server noobexpress.js https 服务器菜鸟
【发布时间】:2014-12-24 20:45:15
【问题描述】:

将 node.js 与 express 结合使用,我制作了一个简单的 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 用于/做什么的图片?

【问题讨论】:

  • 您需要了解https 的工作原理以及它是什么
  • @Vsevolod Goloviznin 我当然可以阅读有关该主题的更多信息。虽然我不清楚,但我的问题更多是关于节点 https 模块或者一般来说可能是 https 服务器。我的理解是服务器从客户端获取加密数据,并使用商定的密码套件和正确的密钥来重新组合数据。我正在寻找的是确认这个解密过程是在https 模块中处理的,并且它作为服务器端流程的第一步发生。
  • 是的,它首先解密数据,这就是为什么您在路由器方法中没有得到一些随机值的原因。

标签: javascript node.js encryption express


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-02-14
    • 2019-06-07
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 2019-08-25
    相关资源
    最近更新 更多