基于ubuntu 22.04搭建nodejs https服务器

服务器 0

导航不迷路:

1、搭建nodejs http服务器

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

3、搭建nodejs 真正的服务器

前言:

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

生成证书:

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

执行方法就是:一路狂按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
在这里插入图片描述

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

也许您对下面的内容还感兴趣: