一、创建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->点击添加->再回去访问页面点击高级->点击继续访问就可以了
下次访问就不会出现问题了