Nodejs在局域网配置https访问的实现方法

(编辑:jimmy 日期: 2024/12/24 浏览:2)

零、需求:

做一个局域网WebRTC视频聊天系统,需要用到HTTPS。因此,配置Node.js使其支持HTTPS访问。

一、解决

在线生成和证书
访问:https://csr.chinassl.net/generator-csr.html
填写好之后点生成即可,我们可以下载到两个文件。
这里我的域名是192.168.110.10,得到192.168.110.10_csr.txt192.168.110.10_key.txt这两个文件(妥善保存)。

然后再访问:https://csr.chinassl.net/free-ssl.html
192.168.110.10_csr.txt文件里的内容粘贴到代码框里,点获取免费证书之后可以下载到一个192.168.110.10_ssl.crt文件。

配置Node.js
参考Node.js配置源,确保已经配置好cnpm了。

安装express模块:

cnpm install express --save

安装express模块的相关依赖:

cnpm install body-parser --save
cnpm install cookie-parser --save
cnpm install multer --save

安装完成后可以查看express的版本号:

cnpm list express

使用HTTPS
192.168.110.10_key.txt192.168.110.10_ssl.crt(名字可能不同,但是格式是这样的)复制到你服务器程序同级目录下,比如我的目录就这三个文件:

192.168.110.10_key.txt
192.168.110.10_ssl.crt
app.js

app.js

//导入模块
const fs = require('fs')// 文件输入输出,用来导入证书    
const https = require('https')// https服务器 
const express = require('express')// express模块导入

//读取证书
const privateKey = fs.readFileSync('192.168.110.10_key.txt', 'utf8')
const certificate = fs.readFileSync('192.168.110.10_ssl.crt', 'utf8')

// 创建 express 应用
const app = express()
// 监听 / 路径的 get 请求
app.get('/', function(req, res) {
 res.send('Hello Word!')
})


const credentials = { key: privateKey, cert: certificate }
const httpsServer = https.createServer(credentials, app)
const SSLPORT = 443
httpsServer.listen(SSLPORT, function() {
 console.log('HTTPS Server is running on: https://localhost:%s', SSLPORT)
})

使用Node.js运行app.js

node app.js

Nodejs在局域网配置https访问的实现方法

设置信任这个证书就可以了~

成功配置Node.js使用HTTPS在局域网内访问!

二、总结

参考地址:
https://www.runoob.com/nodejs/nodejs-express-framework.html
https://www.jianshu.com/p/8b7b7d4d9992

一句话新闻

一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?