Nodejs + express + https模块在本地创建https服务

一、创建https需要我们有私钥跟自签名证书

1.1、 我们通过openssl来生成私钥跟自签名证书

我们可以安装openssl,也可以不安装,我们可以直接使用git自带的openssl
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 、在路径上输入cmd 回车就进入终端,输入以下命令
// 生成服务器私钥
openssl genrsa -aes256 -out server.key 2048
// 回车之后会让你输入密码,随便输入一个你记得住的就行,后续也没用到


// 请求证书
openssl req -new -sha256 -key server.key -out server.csr 
// 输入上面这条指令会让你输入信息
// 例子:
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:Brooklyn
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example Brooklyn Company
Organizational Unit Name (eg, section) []:Technology Division
Common Name (e.g. server FQDN or YOUR name) []:examplebrooklyn.com
Email Address []:


// 生成自签名证书
openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650

完成上面的命令会在bin目录下生成三个文件

server.key server.csr server.crt

二、建立https服务

2.1项目初始化
// 初始化项目
yarn init -y  或者 npm init -y

// 安装express
yarn add express 或者  npm install express
// 安装https模块
yarn add https或者  npm install https
 // 安装cors (解决跨域)
 yarn add cors或者  npm install cors

// 在项目下创建ssl目录用来存放刚刚生成的三个文件
// 在项目下创建app.js文件(项目的入口文件)

完成之后
在这里插入图片描述
在这里插入图片描述

2.2 编写app.js代码
const app = require("express")()
const fs = require("fs")
// 私钥跟证书
const httpsOption = {
    key: fs.readFileSync("./ssl/server.key"),
    cert: fs.readFileSync("./ssl/server.crt"),
}
// 创建https
const https = require("https").Server(httpsOption,app)

const port = 3000

app.get("/test",(req,res)=>{
    res.send("<h1>你好啊,https</h1>")
})


https.listen(port,()=>{
    console.log("https start!!",port)
})


运行项目

在这里插入图片描述

三、在浏览器输入https://localhost:3000访问我们刚运行的https服务

3.1 会出现NET::ERR_CERT_AUTHORITY_INVALID问题

在这里插入图片描述

解决这个问题
设置->隐私和安全->网站设置->更多内容设置->不安全内容->允许显示不安全内容->添加->输入https://localhost:3000->点击添加->再回去访问页面点击高级->点击继续访问就可以了

下次访问就不会出现问题了
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本次教程就到这里
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值