NodeJS创建HTTPS服务器需要怎样做

NodeJS创建HTTPS服务器需要怎样做,第1张

在Nodejs中,我们可以通过内置的https库,来实现HTTPS服务器

首先,我们需要利用openssl生成证书文件:

#生成私钥key文件

openssl genrsa 1024 > /path/to/privatepem

//

#通过私钥文件生成CSR证书签名

openssl req -new -key /path/to/privatepem -out csrpem

//

#通过私钥文件和CSR证书签名生成证书文件

openssl x509 -req -days 365 -in csrpem -signkey /path/to/privatepem -out /path/to/filecrt

新生成了三个文件:

privatepem: 私钥

csrpem: CSR证书签名

filecrt: 证书文件

修改Nodejs启动文件serverjs:

var app = require('express')();

var fs = require('fs');

var http = require('http');

var https = require('https');

var privateKey = fsreadFileSync('/path/to/privatepem', 'utf8'),

var certificate = fsreadFileSync('/path/to/filecrt', 'utf8');

var credentials = {key: privateKey, cert: certificate};

var httpServer = httpcreateServer(app);

var httpsServer = httpscreateServer(credentials, app);

var PORT = 18080;

var SSLPORT = 18081;

httpServerlisten(PORT, function() {

consolelog('HTTP Server is running on: http://localhost:%s', PORT);

});

httpsServerlisten(SSLPORT, function() {

consolelog('HTTPS Server is running on: https://localhost:%s', SSLPORT);

});

// Welcome

appget('/', function(req, res) {

if(reqprotocol === 'https') {

resstatus(200)send('Welcome to Safety Land!');

}

else {

resstatus(200)send('Welcome!');

}

});

启动服务器:

$ node serverjs

HTTP Server is running on: http://localhost:18080

HTTPS Server is running on: https://localhost:18081

打开浏览器

您好!

一、首先在独立的服务器(云服务器、VPS),搭建好普通的网站,并且这个网站可以访问。

二、Gworg获取SSL证书。

三、拿到SSL证书安装到服务器就实现HTTPS网站了。

注:虚拟主机通常都不支持。

对于搭建网站来说,最好是要购买SSL证书的。

SSL 证书(或 TLS 证书)是一种数字证书,它将加密密钥绑定到您组织的详细信息。安全套接字层 (SSL) 是加密协议,旨在加密服务器和 Web 浏览器之间的通信。

当 SSL 证书安装在服务器端时,浏览器中有显示 SSL 保护的视觉提示。如果存在 SSL,您可能会在地址栏中看到 https://、挂锁、绿色地址栏或三者的组合。

SSL证书可以在安信证书申请。SSL 保护您与 Web 服务器的连接并加密任何传输的数据。

https是什么意思

https(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的http通道,简单讲是http的安全版。

类似 ”https://www.fuyeor.com“ 的网址就是开启了 HTTPS。

HTTPS 比 HTTP 更加安全。

https 相当于在HTTP下加入SSL层,https的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。

HTTPS 为什么安全

HTTPS 代理是标准HTTP的更安全版本。最后添加的字母“S”表示“安全”。此代理的额外安全性由安全SSL连接提供。一般来说当用户需要通过网络传输私人信息时往往会选择使用HTTPS代理服务器。

如果用户使用HTTP代理进行一些危险操作,则数据可能被截获的风险很大。此外,不止是黑客对于用户信息感兴趣,Internet提供商同样也感兴趣。他们会在互联网上跟踪客户的每一步,拦截并记录所有对他们有用的信息。所以为了确保个人数据的安全,HTTPS在使用时,所有传输的流量都使用一种特殊的算法进行加密,该算法可以抵抗黑客攻击。同时,百度也更鼓励网站开启 https。

TLS 12要求服务器配置文档:https://wwwgworgcom/ssl/277html。

一台能保证24小时不断电的电脑,一根固定IP地址的光纤,一个域名,安装Windows 2003系统就可以架设服务器了。

下面我们来通过Windows Server 2003提供的POP3服务和SMTP服务架设小型服务器来满足我们的需要。

一、安装POP3和SMTP服务组件

Windows Server 2003默认情况下是没有安装POP3和SMTP服务组件的,因此我们要手工添加。

1安装POP3服务组件

以系统管理员身份登录Windows Server 2003 系统。依次进入“控制面板→添加或删除程序→添加/删除Windows组件”,在弹出的“Windows组件向导”对话框中选中“电子服务”选项,点击“详细信息”按钮,可以看到该选项包括两部分内容:POP3服务和POP3服务Web管理。为方便用户远程Web方式管理服务器,建议选中“POP3服务Web管理”。

2安装SMTP服务组件

选中“应用程序服务器”选项,点击“详细信息”按钮,接着在“Internet信息服务(IIS)”选项中查看详细信息,选中“SMTP Service”选项,最后点击“确定”按钮。此外,如果用户需要对服务器进行远程Web管理,一定要选中“万维网服务”中的“远程管理(HTML)”组件。完成以上设置后,点击“下一步”按钮,系统就开始安装配置POP3和SMTP服务了。

二、配置POP3服务器

1创建域

点击“开始→管理工具→POP3服务”,弹出POP3服务控制台窗口。选中左栏中的POP3服务后,点击右栏中的“新域”,弹出“添加域”对话框,接着在“域名”栏中输入服务器的域名,也就是地址“@”后面的部分,如“xxx”,最后点击“确定”按钮。其中“xxx”为在Internet上注册的域名,并且该域名在DNS服务器中设置了MX交换记录,解析到Windows Server 2003服务器IP地址上。

2创建用户邮箱

选中刚才新建的“xxx”域,在右栏中点击“添加邮箱”,弹出添加邮箱对话框,在“邮箱名”栏中输入用户名,然后设置用户密码,最后点击“确定”按钮,完成邮箱的创建。

三、配置SMTP服务器

完成POP3服务器的配置后,就可开始配置SMTP服务器了。点击“开始→程序→管理工具→Internet信息服务(IIS)管理器”,在“IIS管理器”窗口中右键点击“默认SMTP虚拟服务器”选项,在弹出的菜单中选中“属性”,进入“默认SMTP虚拟服务器”窗口,切换到“常规”标签页,在“IP地址”下拉列表框中选中服务器的IP地址即可。点击“确定”按钮,这样一个简单的服务器就架设完成了。

完成以上设置后,用户就可以使用客户端软件连接服务器进行收发工作了。在设置客户端软件的SMTP和POP3服务器地址时,输入服务器的域名“xxx”即可。

四、远程Web管理

Windows Server 2003还支持对服务器的远程Web管理。在远端客户机中,运行IE浏览器,在地址栏中输入“https://xxx:8098”,将会弹出连接对话框,输入管理员用户名和密码,点击“确定”按钮,即可登录Web管理界面。

使用SSL网关提供HTTPS服务

当使用SSL网关提供HTTPS服务时,网络架构如下图所示(无关的设备已省略,下同)。

SSL网关只会向后转发HTTP协议的数据,不会将T3协议数据转发至weblogic服务器,因此在该场景中,无法通过公网利用weblogic的JAVA反序列化漏洞。

使用负载均衡提供HTTPS服务

当使用负载均衡提供HTTPS服务时,网络架构如下图所示。

安全起见,负载均衡应选择转发HTTP协议而不是TCP协议,因此在该场景中,也无法通过公网利用weblogic的JAVA反序列化漏洞。

使用web代理提供HTTPS服务

当使用web代理(如apache、nginx等)提供HTTPS服务时,网络架构如下图所示。

web代理只会向后转发HTTP协议的数据,因此在该场景中,也无法通过公网利用weblogic的JAVA反序列化漏洞。

使用weblogic提供HTTPS服务

当使用weblogic提供HTTPS服务时,网络架构如下图所示。

weblogic能够接收到利用SSL加密后的T3协议数据,因此在该场景中,通过公网能够利用weblogic的JAVA反序列化漏洞。

根据上述分析,仅当HTTPS服务由weblogic提供时,才能够利用其JAVA反序列化漏洞。

0x02 weblogic开放SSL服务时的T3协议格式分析

利用weblogic的JAVA反序列化漏洞时,必须向weblogic发送T3协议头。为了能够利用提供SSL服务的weblogic的JAVA反序列化漏洞,需要首先分析当weblogic提供SSL服务时的T3协议格式。

SSL数据包为加密的形式,无法直接进行分析,需要进行解密。当已知SSL私钥时,可以利用Wireshark对SSL通信数据进行解密。

weblogic可以使用演示SSL证书提供SSL服务,也可以使用指定SSL证书提供SSL服务。

可以使用两种方法进行分析,一是使用weblogic提供的演示SSL证书进行分析,二是使用自己生成的SSL证书进行分析。

使用weblogic演示证书进行分析(方法一)

使用weblogic演示证书开放SSL服务

登录weblogic控制台,将AdminServer的“启用SSL监听端口”钩选,并填入SSL监听端口号。

查看AdminServer的密钥库配置,确认为“演示标识和演示信任”(Demo Identity and Demo Trust),可以看到演示密钥库的文件名为“DemoIdentityjks”,演示信任密钥库文件名为“DemoTrustjks”。

查看AdminServer的SSL配置,可以看到演示密钥库的私钥别名为“DemoIdentity”。

使用HTTPS方式登录weblogic控制台,确认可以正常登录。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » NodeJS创建HTTPS服务器需要怎样做

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情