基于ubuntu 22.04搭建nodejs https服务器

打印 上一主题 下一主题

主题 1014|帖子 1014|积分 3042

导航不迷路:

1、搭建nodejs http服务器
2、搭建nodejs https服务器(本文)
3、搭建nodejs 真正的服务器
媒介:

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



  • 新建cert目次:
  1. mkdir cert
  2. cd cert/
复制代码


  • 生成证书:
    这儿利用 OpenSSL 工具来生成自署名的 SSL/TLS 证书,用于加密 HTTPS 网站的通讯,命令如下:
  1. openssl req -nodes -new -x509 -keyout server.key -out server.cert
  2. 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脚本:

  1. 'use strict'
  2. var https = require('https');
  3. var fs = require('fs');
  4. var options = {
  5.   key : fs.readFileSync('./cert/server.key'),
  6.   cert : fs.readFileSync('./cert/server.cert')
  7. }
  8. var app = https.createServer(options, function(req, res){
  9.   res.writeHead(200, {'Content-Type':'text/plain'});
  10.   res.end('HTTPS:Hello, I am a https server!\n');
  11. }).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 端口,并监听所有网络接口的连接。
运行:

  1. sudo node https_server.js
复制代码
有人大概会问,我上面不是先容了forever嘛,为啥不用?因为我写文章时候刚申请了一台某云服务器,forever工具装了1个小时了还没动(最终发现更新下源就好了,命令:sudo npm config set registry https://registry.npmmirror.com/!)
利用欣赏器访问:


杂:

1、记得安装npm的时候要设置源:
  1. 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

接待关注公众号:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表