基于ubuntu 22.04搭建nodejs https服务器

导航不迷路:

1、搭建nodejs http服务器

2、搭建nodejs https服务器(本文)

3、搭建nodejs 真正的服务器

前言:

前面搭建的http服务器就是学习用的,不太安全啦,这次我们直接大家个带s(Secure),话不多说,开整!

生成证书:

  • 新建cert目录:
mkdir cert
cd cert/
  • 生成证书:
    这儿使用 OpenSSL 工具来生成自签名的 SSL/TLS 证书,用于加密 HTTPS 网站的通信,命令如下:
openssl req -nodes -new -x509 -keyout server.key -out server.cert
cd ..

执行方法就是:一路狂按Enter键!!!
以下是对该命令的解释

  • openssl: 这是 OpenSSL 工具的命令行接口,用于执行各种加密算法和操作。
    req: 表示这是一个用于生成证书请求的 OpenSSL 子命令。
  • -nodes: 这个选项指示 OpenSSL 不加密生成的私钥文件。私钥文件通常是加密的,但使用 -nodes 选项生成的私钥文件是不加密的,这样在使用私钥时就不需要输入密码。
  • -new: 这个选项告诉 OpenSSL 创建一个新的证书请求。
  • -x509: 这个选项指定生成自签名的 X.509 证书,而不是一个证书请求。
  • -keyout server.key: -keyout 选项指定生成的私钥文件的名称为 server.key。这个私钥文件包含了服务器的私钥,用于对数据进行加密和解密。
  • -out server.cert: -out 选项指定生成的证书文件的名称为 server.cert。这个证书文件包含了服务器的公钥和一些其他信息,用于客户端验证服务器的身份。

编写js脚本:

'use strict'

var https = require('https');
var fs = require('fs');

var options = {
  key : fs.readFileSync('./cert/server.key'),
  cert : fs.readFileSync('./cert/server.cert')
}
var app = https.createServer(options, function(req, res){
  res.writeHead(200, {'Content-Type':'text/plain'});
  res.end('HTTPS:Hello, I am a https server!\n');
}).listen(443, '0.0.0.0');

代码解释:

  • ‘use strict’;:严格模式声明,提供更加安全且规范的 JavaScript 编程环境。
  • https = require(‘https’);:引入 Node.js 的内置 https 模块,用于创建 HTTPS 服务器。
  • fs = require(‘fs’);:引入 Node.js 的内置 fs 模块,用于文件操作。
  • options:包含了 HTTPS 服务器所需的证书和私钥信息。
  • key : fs.readFileSync(‘./cert/server.key’):读取位于 ./cert/server.key 的服务器私钥文件。
  • cert : fs.readFileSync(‘./cert/server.cert’):读取位于 ./cert/server.cert 的服务器证书文件。
  • https.createServer(options, function(req, res){…}):创建一个 HTTPS 服务器实例,传入证书和私钥选项,并设置请求处理函数。
  • res.writeHead(200, {‘Content-Type’:‘text/plain’});:设置响应头,状态码为 200,内容类型为纯文本。
  • res.end(‘HTTPS:Hello, I am a https server!\n’);:发送 “HTTPS:Hello, I am a https server” 文本作为响应。
  • .listen(443, ‘0.0.0.0’);:将服务器绑定在 443 端口,并监听所有网络接口的连接。

运行:

sudo node https_server.js

有人可能会问,我上面不是介绍了forever嘛,为啥不用?因为我写文章时候刚申请了一台某云服务器,forever工具装了1个小时了还没动(最终发现更新下源就好了,命令:sudo npm config set registry https://registry.npmmirror.com/!)

使用浏览器访问:

在这里插入图片描述

杂:

1、记得安装npm的时候要设置源:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

千万不能使用sudo,否则,只能root使用;

2、nodejs和npm版本好一定要匹配,否则执行不成功,具体参考:
https://nodejs.org/zh-cn/about/previous-releases
在这里插入图片描述

欢迎关注公众号:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值