node+react项目本地使用https进行开发

准备好证书

对于本地来说,可以使用mkcert来生成证书

安装:

  • mac:

    brew install mkcert
    brew install nss # if you use Firefox
    
  • windows

    #Chocolatey
    choco install mkcert
    
    # or use Scoop
    scoop bucket add extras
    scoop install mkcert
    

生成证书

mkdir -p ~/.cert
#生成证书
mkcert -key-file ~/.cert/key.pem -cert-file ~/.cert/cert.pem "localhost"
#让系统信任生成的证书,只有初次生成证书时需要运行这个命令,后续通过 mkcert -key-file 生成的证书会自动被系统信任
mkcert -install

express启动https服务

import express from 'express'
const app = express()
const httpsOption = {
  //证书地址
    key: fs.readFileSync(path.join(os.homedir(), '.cert/key.pem')),
    cert: fs.readFileSync(path.join(os.homedir(), '.cert/cert.pem'),
  }
  https.createServer(httpsOption, app).listen(PORT, '127.0.0.1', () => {
    console.log(`server start and listening on port ${Port}`)
  })

react启动https

如果你是通过cra创建的项目,只需添加几个环境变量即可,将启动命令修改成如下所示,即可在本地服务启动https

//package.json
{
  "script":{
    "start": "HTTPS=true SSL_CRT_FILE=$HOME/.cert/cert.pem SSL_KEY_FILE=$HOME/.cert/key.pem react-scripts start",
  }
}

之后你的网络请求全部改成https即可

反向代理

现在线上环境经常会使用反向代理,为了本地和线上环境最大限度地保持一致,本地可以使用caddy实现反向代理,mac下运行brew install caddy即可下载,其他系统可以自行查阅文档,这里附上一个中文的文档(非官方)。

只需要在项目启动之后运行下面命令即可,这条命令是将localhost代理到https://localhost:3000,我们打开网页输入localhost即可访问服务。

Caddy 会自动生成证书,获取系统信任,无需另行生成证书,也无需修改项目的启动服务。

caddy reverse-proxy --from localhost --to https://localhost:3000

image-20221013215353805

线上环境

针对线上环境,只需要将证书的地址什么的改一下,然后前端使用https发送请求,配置对应的反向代理即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值