节点中的HTTPS TLS设置

时间:2019-02-05 02:29:59

标签: node.js tls1.2

我今天正在浏览我的代码库,该部分设置服务器并找到以下行:

var https = require('https');
https.globalAgent.options.secureProtocol = 'TLSv1_2_method';

function createHttpsServer(app) {
    var https = require('https');
    var fs = require('fs');
    const options = {
        secureProtocol: 'TLSv1_2_method',
        // ...
    };
    var server = https.createServer(options, app);
    return server;
}

对我来说,这看起来像是重复代码,我不确定为什么它们会做不同的事情(或者是?)。

我的一位同事告诉我,最重要的是用于控制由NodeJS发出的HTTPS请求中的TLS,这反过来又使我们能够访问https.agent,该{用于处理与客户端HTTP请求有关的所有事情。

这也与.NET世界中的ServicePointManager进行了比较。

那么这些方法都做不同的事情吗?在某些时候,我们的代码可以做到:

var server = protocol === 'https' ? createHttpsServer(app) : createHttpServer(app);

一天结束时是否会使用同一台服务器?

1 个答案:

答案 0 :(得分:0)

var server = protocol === 'https' ? createHttpsServer(app) : createHttpServer(app);

上面的行创建了同一台服务器,唯一的区别是,如果协议为'https',它将在HTTPS服务器上运行(这需要SSL证书),而如果协议为http,它将在HTTP服务器上运行。