杀鸡焉用牛刀 发表于 2024-10-25 02:09:22

基于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/!)
利用欣赏器访问:

https://i-blog.csdnimg.cn/direct/48cc2625df274d39aeb126d3c41b618b.png
杂:

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
https://i-blog.csdnimg.cn/direct/8475c6e5972941f190e3b025fb26429c.png
接待关注公众号:
https://i-blog.csdnimg.cn/direct/172a81161dbc4ba19b1b3c8a6d84b0d2.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 基于ubuntu 22.04搭建nodejs https服务器