首页 >> 大全

【小沐学前端】Node.js搭建HTTPS 服务器

2023-11-24 大全 28 作者:考证青年

(1)生成签名证书

(2)使用Node.js的HTTPS模块

2、生成自签名证书

通常在企业中面向公网使用的证书通常是由全球权威 CA 机构签发的证书,受各大浏览器厂商信任。

在开发测试时为了简单点我们可以自签名证书,但是这在浏览器中打开时会有安全问题提示。

直接命令行执行会报错。需要将的路径添加到环境变量PATH里。

复制安装路径。

添加到环境变量里如下:

再次执行命令如下:

使用 工具生成自签名证书。

2.1 key文件

1、使用 的 命令生成一个服务器私钥文件

# genrsa 生成密钥
# -out 指定输出的文件
openssl genrsa -out server.key 2048

2.2 csr文件

2、生成证书请求文件

# -new 执行生成新的证书请求
# -key 指定输入的密钥
openssl req -new -key server.key -out server.csr# req 生成证书签名请求
# -new 新生成
# -key 私钥文件
# -out 生成的CSR文件
# -subj 生成CSR证书的参数
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Guangdong/L=Guangzhou/O=tomcat/OU=tomcat/CN=tomcat.cn"

报错了。

出现错误:Can’t open C:\ Files\ Files\SSL/f for ,no such file or .

出现这个错误的原因是可能没有设置环境变量。.cfg是的配置信息。

set OPENSSL_CONF=D:\OpenSSL-Win64\bin\cnf\openssl.cfg

再次执行上面的命令如下:

依次添加相关参数如下:

字段字段含义示例

/C=

国家

CN

/ST=

State or 省

/L=

or City 城市

/O=

组织或企业

/OU=

Unit 部门

/CN=

Name 域名或IP

生成文件如下:

2.3 crt文件

3、根据第 2 步的证书请求文件和第 1 步的服务器私钥文件,生成证书。

【小沐学前端】Node.js搭建HTTPS 服务器__【小沐学前端】Node.js搭建HTTPS 服务器

# x509 根据现有的证书请求生成自签名根证书
# -days 设置证书的有效天数
# -in 指定输入证书请求文件
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

执行命令如下:

生成文件如下:

4、生成如下 三 个文件:

X.509证书包含三个文件:key,csr,crt。*.key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
*.csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
*.crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息
备注:在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。

4、代码测试 4.1 Node.js简介

Node.js 非常强大,只需动手写几行代码就可以构建出整个HTTP服务器。事实上,我们的Web应用以及对应的Web服务器基本上是一样的。

在我们创建Node.js第一个"Hello, World!"应用前,让我们先了解下Node.js应用是由哪几部分组成的:

4.2 Node.js的http模块

var http = require('http');http.createServer(function (request, response) {// 发送 HTTP 头部 // HTTP 状态值: 200 : OK// 内容类型: text/plainresponse.writeHead(200, {'Content-Type': 'text/plain;charset=UTF8'});// 发送响应数据 "Hello World"response.end('Hello World, 爱看书的小沐!\n');
}).listen(8888);// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

命令行执行命令:

node server.js

浏览器预览如下:

4.3 Node.js的模块

是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。使用可以快速地搭建一个完整功能的网站。

框架核心特性包括:

# 安装Express并将其保存到依赖列表中:
npm install express --save

接下来我们使用框架来输出"Hello World"。

以下实例中我们引入了模块,并在客户端发起请求后,响应"Hello World"字符串。

创建.js文件,代码如下所示:

//express_demo.js 文件
var express = require('express');
var app = express();app.get('/', function (req, res) {res.send('Hello World, 爱看书的小沐!');
})var server = app.listen(8081, function () {var host = server.address().addressvar port = server.address().portconsole.log("应用实例,访问地址为 http://%s:%s", host, port)
})

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了