【前端】使用HTTPS

在前端本地开发环境中使用 HTTPS 主要取决于你用的是哪个构建工具(如 Vite、Webpack、Vue CLI 等)。

目录

  • Vite
  • Webpack
  • 本地生产环境 npx serve
  • 浏览器提示“不安全”解决方法
  • 上传github注意不要把key传上去

Vite

npm install --save-dev @types/node #安装 Node 类型定义
#@types/node 提供了 Node.js 内置模块的完整类型定义,TypeScript 编译器才能正确识别它们。npm install mkcert --save-dev#生成HTTPS本地证书 执行一次即可
npx mkcert create-ca
npx mkcert create-cert
#在项目中生成 cert.pem 和 key.pem 文件。
#证书一旦生成,无法修改,只能重新生成证书
npx mkcert create-cert --ca-key rootCA-key.key --ca-cert rootCA.crt localhost 127.0.0.1 mydomain.com
#--ca-key 指定上一步生成的 CA 私钥文件
#--ca-cert 指定 CA 证书文件
#后面的参数就是你想包含进证书的域名或 IP,可以多个
//打开 tsconfig.node.json,检查是否有 "types": ["node"],如果没有,添加进去。
{"compilerOptions": {"module": "ESNext","target": "ESNext","moduleResolution": "Node","types": ["node"]//内置node模块 这里⬇️}
}//修改 vite.config.ts 或 vite.config.js
import { defineConfig } from 'vite'import fs from 'fs'
import path from 'path'//这里⬇️import vue from '@vitejs/plugin-vue'export default defineConfig({plugins: [vue()],server: {https: {//这里⬇️key: fs.readFileSync(path.resolve(__dirname, 'cert.key')),cert: fs.readFileSync(path.resolve(__dirname, 'cert.crt')),},host: 'localhost', // 或 0.0.0.0port: 5173,},
})
yarn dev  # 或 npm run dev

浏览器访问 https://localhost:5173,你需要信任证书(第一次访问会提示“不安全”,点击继续即可)。

文件名含义
cert.crt服务端的证书(公钥)
ca.crt根证书(自签名时的 CA 证书)
cert.key私钥(用来与 cert.crt 搭配)
# cert.key
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----#cert.crt
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
  • ca.crt是可选的,除非你想让浏览器信任你自签的证书链。
    把你的 ca.crt 安装进系统或浏览器的信任根证书列表

macOS:用钥匙串访问(Keychain Access)导入

  1. 打开「钥匙串访问」App
  2. 拖入你的 ca.crt
  3. 设置「始终信任」

Windows:
4. 运行 certmgr.msc
5. 选择「受信任的根证书颁发机构」→「证书」
6. 右键选择「导入」→ 选择你的 ca.crt
7. 安装完成后,重新启动浏览器

不再显示不信任的警告 🚫🔒

Webpack

//在 webpack-dev-server 中启用 HTTPS:
// webpack.config.js
devServer: {https: true,host: 'localhost',port: 3000,
}//配置自定义证书
https: {key: fs.readFileSync('./key.pem'),cert: fs.readFileSync('./cert.pem'),
},

本地生产环境 npx serve

serve 本身是支持 HTTPS 的,只需要加参数

npx serve -s dist --ssl-cert cert.pem --ssl-key key.pem
  • 两个工具之间的关系
    从功能角度来说,如果你用的是 Vite,用 vite preview 就完全可以替代 npx serve dist 来预览构建后的静态文件,而且 vite preview 是 Vite 官方集成的命令,兼容性和配置体验更好。推荐用 vite preview 来预览生产构建,特别是如果你要用 HTTPS,vite preview 支持直接配置更方便。
    如果vite preview找不到,使用npx vite preview
工具作用需不需要卸载?
Vite开发和构建工具,yarn dev 启动开发服务器,yarn build 生成静态文件不能卸载,是你项目核心构建工具
npx serve一个简单的静态文件服务器,用来本地预览构建后生成的 dist 目录不用卸载,方便快速预览,但不是必须

npm uninstall -g serve卸载,可选清理缓存npm cache clean --force,这样npx serve dist 命令不再起作用

浏览器提示“不安全”解决方法

由于是自签证书,浏览器默认会提示不安全;
点击「高级」→「继续访问」即可;
若你希望不再提示,需要手动将 .pem 证书导入系统信任证书中。

上传github注意不要把key传上去

把证书文件(比如 .pem、.key、.crt)加入 .gitignore,避免误上传。
使用环境变量或安全的配置管理方式来管理证书路径。
如果一定要存储证书,建议放在私有仓库或使用加密方式。
生产环境使用云服务或服务器的证书管理(如 Let’s Encrypt)来自动管理证书。

# 忽略证书和私钥
*.pem
*.key
*.crt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/84885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 包管理工具 uv的一些常用指令

1.如何安装uv: 在Windows下,执行下面的指令: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" 安装很快,安装完成后,会出现: 接着,我们运行指…

行为型:策略模式

目录 1、核心思想 2、实现方式 2.1 模式结构 2.2 实现案例 3、优缺点分析 4、适用场景 5、优化技巧 1、核心思想 目的:将算法(行为)抽象出来作为一系列策略类,使他们可以相互替换,使系统拥有“可插拔”扩展的能…

计算机网络学习20250524

协议 格式—语法:数据结构或格式(怎么做)次序—时序:事件实现的顺序(做的顺序)行为动作—语义:发出什么控制信息,完成何种动作、做出何种应答 网络结构 网络边缘:主机…

Github 2025-05-24 Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2025-05-24统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10TypeScript项目2Dart项目1Tauri: 构建小型、快速和安全的桌面应用程序 创建周期:1673 天开发语言:Rust协议类型:Apache License 2…

数据结构之堆(topk问题、堆排序)

一、堆的初步认识 堆虽然是用数组存储数据的数据结构,但是它的底层却是另一种表现形式。 堆分为大堆和小堆,大堆是所有父亲大于孩子,小堆是所有孩子大于父亲。 通过分析我们能得出父子关系的计算公式,parent(child-1)/2&#xff…

0基础 Git 代码操作

将代码提交仓库: 准备工作​ ​注册 Gitee 账号​:确保你已注册并登录 Gitee。​创建仓库​:在 Gitee 上新建一个空仓库(如果尚未创建): 点击右上角 → 新建仓库。填写仓库名称、描述,选择公…

OpenAI大模型不听人类指令事件的技术分析与安全影响

OpenAI大模型不听人类指令事件的技术分析与安全影响 OpenAI大模型o3确实存在不遵从人类关闭指令的现象,这一行为已被第三方安全机构验证,但其本质是技术缺陷而非AI意识觉醒。帕利塞德研究所的测试显示,在100次实验中o3有7次成功绕过关闭指令…

软件工程期末速成--附带几道题

软件工程中的各种设计 瀑布模型: 定义:将软件生存周期的各项活动规定为依照固定顺序连接的若干阶段工作,形如瀑布流水,最终得到软件产品 系统流程图:系统流程图是描绘物理系统的传统工具,它的基本思想是用…

免费分享50本web全栈学习电子书

最近搞到一套非常不错的 Web 全栈电子书合集,整整 50 本,都是epub电子书格式,相当赞!作为一个被期末大作业和项目 ddl 追着跑的大学生,这套书真的救我狗命! 刚接触 Web 开发的时候,我天天对着空…

嵌入式学习笔记——day26

文件操作(续)目录操作 一、文件操作 1. lseek lseek 是一个用于在文件中移动文件指针的系统调用,通常用于在文件描述符所指向的文件中定位读取或写入的位置。它允许程序在文件中随机访问数据,而不是只能顺序读取或写入。 off_t …

LINUX安装运行jeelowcode前端项目

参考 JeeLowCode低代码社区,JeeLowCode低代码开发平台,JeeLowCode低代码开发框架,快速启动(VUE) 安装node 18 LINUX安装node/nodejs_linux安装node 安装到哪-CSDN博客 安装PNPM LINUX安装PNPM-CSDN博客 下载 git clone https://gitcode.com/jeelo…

【Redis】基本架构

1. 单线程模型 现在开启了三个redis-cli客户端同时执行命令。 客户端1设置一个字符串键值对: 127.0.0.1:6379> set hello world客户端2对counter做自增操作: 127.0.0.1:6379> incr counter客户端3对counter做自增操作: 127.0.0.1:…

[yolov11改进系列]基于yolov11的修改检测头为自适应特征融合模块为ASFFHead检测头的python源码+训练源码

【自适应空间特征融合模块ASFF介绍】 ASFF(Adaptive Spatial Feature Fusion)是一种自适应特征融合策略,旨在解决目标检测中不同尺度特征之间的冲突和不一致性。 ‌ 基本概念和原理 ASFF通过学习每个尺度特征的自适应融合权重&#xff0c…

机器学习——支持向量机SVM

机器学习——支持向量机 一、介绍1.概述1.1 概念1.2 SVM的优缺点 2.硬间隔2.1 求解间隔2.2 对偶问题 3.软间隔3.1 松驰变量3.2 对偶问题 4.核函数4.1 概念4.2 常见的核函数 二、代码实战1.实验要求2.具体实现2.1 词汇表加载2.2 邮件预处理函数2.3词索引转换为特征向量2.4 SVM 模…

Python 科学计算有哪些提高运算速度的技巧

在科学计算中提高 Python 运算速度的核心技巧包括:使用 NumPy 向量化操作、利用 Numba 加速函数、调用 C/C 扩展模块、应用多线程/多进程并行计算、使用 GPU 加速计算。其中,使用 NumPy 向量化是最基础且见效最快的优化方式。NumPy 利用底层 C 实现高效的…

React+Antd全局加载遮罩工具

下面是全局加载遮罩工具,功能:提供show和showWithDelay/hide方法用于显示/延时显示/隐藏遮罩,它还提供loading属性返回是否正在loading。通常用于耗时较长的操作,比如远端api调用。 如何用它,下面是个例子&#xff0c…

【机器学习基础】机器学习入门核心算法:GBDT(Gradient Boosting Decision Tree)

机器学习入门核心算法:GBDT(Gradient Boosting Decision Tree) 1. 算法逻辑2. 算法原理与数学推导2.1 目标函数2.2 负梯度计算2.3 决策树拟合2.4 叶子权重计算2.5 模型更新 3. 模型评估评估指标防止过拟合 4. 应用案例4.1 金融风控4.2 推荐系…

水墨色调中国风PPT模版分享

水墨色调中国风PPT模版分享:水墨中国风PPT模版https://pan.quark.cn/s/4368c537b1d2 第一套PPT模版​:主题是“爱莲说”,水墨风格封面。核心视觉是绿色莲蓬、白鹤、红色印章,文字有“爱莲说”等。适用文学或传统文化类演示。 ​第…

PBX、IP PBX、FXO 、FXS 、VOIP、SIP 的概念解析以及关系

PBX(Private Branch Exchange) 概念 :PBX 是专用交换机,是一种在企业或组织内部使用的电话交换系统。它允许内部用户之间以及内部用户与外部公共电话网络(PSTN)之间进行通信。例如,在一个大型企…

LabVIEW双光子荧光成像软件开发

双光子荧光成像技术在抑郁小鼠脑内丙二醛(MDA)和甲醛(FA)检测中的软件开发,基于 LabVIEW 平台构建从硬件控制、数据采集到图像处理的全流程系统。结合 5734 FPGA 实现实时图像处理,突出双光子成像的深度开发…