当前位置: 首页 > article >正文

5分钟搞定:用mkcert为Vue/Uniapp项目快速配置本地HTTPS(附常见问题排查)

前端开发者必备5分钟为Vue/Uniapp项目配置本地HTTPS全指南现代前端开发中越来越多的浏览器API要求运行在HTTPS环境下才能正常工作比如摄像头访问、地理位置获取、Service Worker等。这给本地开发带来了不小的挑战——我们既需要HTTPS环境进行功能测试又不希望花费大量时间在复杂的证书配置上。本文将为你揭示一个高效解决方案使用mkcert工具快速为Vue2/Vue3/Uniapp项目配置本地HTTPS环境。1. 为什么本地开发需要HTTPS十年前我们可能只需要在本地运行npm run dev就能开始开发但随着Web技术的演进这种简单的HTTP环境已经无法满足现代前端开发需求。以下是几个必须使用HTTPS的典型场景设备API调用摄像头、麦克风、地理位置等敏感APIPWA开发Service Worker只能在HTTPS环境下注册第三方登录OAuth认证通常要求HTTPS连接混合内容安全避免混合内容警告影响开发体验传统解决方案要么需要购买域名和证书要么配置过程极其复杂。而mkcert的出现完美解决了这个问题——它能在本地生成浏览器信任的证书且配置过程极其简单。2. mkcert工具安装与基础配置2.1 安装mkcertmkcert是一个用Go语言编写的证书生成工具支持跨平台使用。安装方式根据你的操作系统有所不同# 使用Homebrew安装Mac brew install mkcert # 使用Chocolatey安装Windows choco install mkcert # Linux用户基于Debian的系统 sudo apt install libnss3-tools wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64 sudo mv mkcert-v1.4.4-linux-amd64 /usr/local/bin/mkcert sudo chmod x /usr/local/bin/mkcert安装完成后运行以下命令初始化本地CA证书颁发机构mkcert -install这个命令会在你的系统中创建一个本地CA并自动将其添加到系统的信任存储中。你可以通过以下命令验证安装是否成功mkcert -CAROOT2.2 生成项目证书进入你的项目目录运行以下命令为localhost生成证书mkcert localhost 127.0.0.1 ::1这将生成两个文件localhost2.pem证书文件localhost2-key.pem私钥文件提示如果你需要为其他域名生成证书只需在命令后添加更多域名即可例如mkcert myapp.test localhost 127.0.0.1 ::13. Vue项目HTTPS配置实战3.1 Vue CLI项目配置对于使用Vue CLI创建的项目配置HTTPS非常简单。首先将生成的证书文件复制到项目目录中建议放在ssl文件夹内然后修改vue.config.jsconst fs require(fs) const path require(path) module.exports { devServer: { https: { cert: fs.readFileSync(path.join(__dirname, ssl/localhost2.pem)), key: fs.readFileSync(path.join(__dirname, ssl/localhost2-key.pem)) }, // 可选自动打开浏览器 open: true } }3.2 Vite项目配置对于使用Vite的Vue3项目配置稍有不同。修改vite.config.jsimport { defineConfig } from vite import vue from vitejs/plugin-vue import fs from fs import path from path export default defineConfig({ plugins: [vue()], server: { https: { cert: fs.readFileSync(path.resolve(__dirname, ssl/localhost2.pem)), key: fs.readFileSync(path.resolve(__dirname, ssl/localhost2-key.pem)) }, // 可选配置代理 proxy: { /api: { target: http://localhost:3000, changeOrigin: true, secure: false } } } })3.3 常见问题排查问题1浏览器仍然显示不安全连接解决方案确保证书已正确安装到系统信任存储运行mkcert -install检查证书是否针对正确的域名生成清除浏览器缓存并重启开发服务器问题2证书无效或过期mkcert生成的证书默认有效期为2年。如果遇到过期问题只需删除旧证书并重新生成rm localhost2.pem localhost2-key.pem mkcert localhost 127.0.0.1 ::1问题3开发服务器无法启动检查错误信息常见原因包括证书文件路径错误文件权限问题端口被占用4. Uniapp项目特殊配置Uniapp的HTTPS配置与其他框架有所不同需要通过manifest.json文件进行配置。以下是详细步骤将证书内容转换为单行格式注意替换\n为实际换行符修改manifest.json中的h5配置{ h5: { devServer: { https: { cert: -----BEGIN CERTIFICATE-----\n...完整证书内容...\n-----END CERTIFICATE-----, key: -----BEGIN PRIVATE KEY-----\n...完整私钥内容...\n-----END PRIVATE KEY----- } } } }注意Uniapp要求证书和私钥内容必须为单行字符串所有换行符需要用\n表示。可以使用文本编辑器的合并行功能或以下命令处理awk NF {sub(/\r/, ); printf %s\\n,$0;} localhost2.pem5. 进阶技巧与最佳实践5.1 自动化脚本为了简化流程可以创建自动化脚本完成证书生成和配置#!/bin/bash # generate-cert.sh # 生成证书 mkcert -key-file ssl/localhost.key -cert-file ssl/localhost.crt localhost 127.0.0.1 ::1 # 复制证书到项目目录 mkdir -p src/ssl cp ssl/localhost.crt src/ssl/ cp ssl/localhost.key src/ssl/ echo 证书已生成并复制到项目目录5.2 多项目共享证书如果你有多个本地开发项目可以创建一个共享证书目录# 创建共享证书 mkdir -p ~/.local-ssl mkcert -key-file ~/.local-ssl/localhost.key -cert-file ~/.local-ssl/localhost.crt localhost 127.0.0.1 ::1 # 在各项目中引用 devServer: { https: { cert: fs.readFileSync(path.join(process.env.HOME, .local-ssl/localhost.crt)), key: fs.readFileSync(path.join(process.env.HOME, .local-ssl/localhost.key)) } }5.3 跨设备信任如果你需要在多台设备上测试如手机测试本地开发环境可以将CA证书导出并安装到其他设备# 导出CA证书 mkcert -CAROOT # 查看CA存储路径 # 通常位于 ~/.local/share/mkcert 或 %LOCALAPPDATA%\mkcert # 将rootCA.pem发送到其他设备并安装在移动设备上安装CA证书后你就能在手机浏览器中访问https://你的电脑IP:端口进行测试了。

相关文章:

5分钟搞定:用mkcert为Vue/Uniapp项目快速配置本地HTTPS(附常见问题排查)

前端开发者必备:5分钟为Vue/Uniapp项目配置本地HTTPS全指南 现代前端开发中,越来越多的浏览器API要求运行在HTTPS环境下才能正常工作,比如摄像头访问、地理位置获取、Service Worker等。这给本地开发带来了不小的挑战——我们既需要HTTPS环境…...

BepInEx终极指南:5分钟掌握Unity游戏插件框架

BepInEx终极指南:5分钟掌握Unity游戏插件框架 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 想要为心爱的Unity游戏添加自定义模组却不知从何下手?BepInEx…...

geo优化软件系统好用的服务商

在当今数字化时代,GEO优化软件系统对于企业的重要性日益凸显。它能够帮助企业根据地理位置信息精准地推送广告、优化业务流程,从而提高营销效果和运营效率。那么,市场上有哪些好用的GEO优化软件系统服务商呢?今天我们就来一探究竟…...

JMS, ActiveMQ 学习一则秦

开发个什么Skill呢? 通过 Skill,我们可以将某些能力进行模块化封装,从而实现特定的工作流编排、专家领域知识沉淀以及各类工具的集成。 这里我打算来一次“套娃式”的实践:创建一个用于自动生成 Skill 的 Skill,一是用…...

电力发展趋势

电力设备行业正处于政策强托底、技术大迭代、全球需求共振的高景气周期,核心趋势是绿色化、智能化、高端化、全球化,并由AI算力、新能源并网、十五五电网投资三大引擎驱动,行业从“规模扩张”转向“高质量发展”。 一、核心驱动:三…...

ECAPA-TDNN说话人识别终极指南:从零开始构建高性能语音验证系统

ECAPA-TDNN说话人识别终极指南:从零开始构建高性能语音验证系统 【免费下载链接】ECAPA-TDNN Unofficial reimplementation of ECAPA-TDNN for speaker recognition (EER0.86 for Vox1_O when train only in Vox2) 项目地址: https://gitcode.com/gh_mirrors/ec/E…...

Redis命令处理机制源码探究潘

一、项目背景与核心价值 1. 解决的核心痛点 Navicat的数据库连接密码并非明文存储,而是通过AES算法加密后写入.ncx格式的XML配置文件中。一旦用户忘记密码,常规方式只能重新配置连接,效率极低。本项目只作为学习研究使用,不做其他…...

3个真实场景下用命令行解放百度网盘操作

3个真实场景下用命令行解放百度网盘操作 【免费下载链接】BaiduPCS-Go iikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能 项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go 你是否曾经历过这样的场景:需要批量下载几十个文件&…...

告别网盘限速!八大平台免费直链下载助手完整指南

告别网盘限速!八大平台免费直链下载助手完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...

MySQL 单表查询练习题汇总

一、练习数据表(my_student_score)表结构说明班级:高三 1-5 班(共 5 个)科目:语文、数学、英语、物理、化学、生物(共 6 个)数据量:300 条(覆盖多班级、多科目…...

mysql下载(mysql安装教程)

MySQL是目前世界上最流行的开源关系型数据库管理系统,由瑞典MySQL AB公司开发,现在属于Oracle旗下。简单来说,它就是一个专门用来存储、管理和查询数据的软件,而且完全免费。 MySQL最大的优势就是它的开源特性和高性能。作为LAMP…...

东莞geo搜索优化平台怎么找?亲测正规平台的实践分享

引言在数字化时代,企业如何有效地利用搜索引擎优化来提升品牌曝光度和业务转化率,成为营销领域的关键课题。特别是对于地域性服务企业,如东莞的装修公司或定制服饰公司,地理定位搜索优化(geo搜索优化)显得尤…...

从数据采集到回放验证:ADTF 适配 ROS 的 ADAS 测试实践佑

一、简化查询 1. 先看一下查询的例子 /// /// 账户获取服务 /// /// /// public class AccountGetService(AccountTable table, IShadowBuilder builder) {private readonly SqlSource _source new(builder.DataSource);private readonly IParamQuery _accountQuery build…...

Gephi实战:如何用外观和布局打造专业级网络可视化图表(附详细参数设置)

Gephi实战:如何用外观和布局打造专业级网络可视化图表(附详细参数设置) 当面对复杂的网络数据时,如何让节点和边的关联关系一目了然?Gephi作为开源的网络分析工具,其强大的可视化功能能帮助我们从杂乱的数据…...

OpenClaw配置备份指南:Qwen3.5-9B模型参数迁移技巧

OpenClaw配置备份指南:Qwen3.5-9B模型参数迁移技巧 1. 为什么需要备份OpenClaw配置 上周我在本地调试一个自动化脚本时,不小心误删了OpenClaw的配置文件。这个错误让我付出了整整两天时间重新配置环境——包括模型参数、技能包和飞书机器人集成。这次惨…...

企业什么时候应采用 GraphRAG,什么时候普通 RAG 已足够?

企业在建设知识问答、智能搜索或 AI 助手时,常见的问题并不只是模型能力不足,而是没有区分不同类型的知识处理需求。并非所有场景都需要 GraphRAG,也并非普通 RAG 可以覆盖全部企业问题。二者适用的前提、处理的对象以及能够解决的问题&#…...

物联网安全实践--基于ESP8266的WiFi干扰器DIY全流程解析

1. ESP8266模块与物联网安全入门 第一次接触ESP8266是在三年前改造智能家居项目时,这块售价不到20元的小板子让我大开眼界。作为物联网开发的"瑞士军刀",ESP8266凭借其WiFi功能和GPIO接口,成为硬件黑客的最爱。不过今天我们要探讨的…...

UE5: 解密Actor Tick的注册时机与执行流程

1. 从“Tick”说起:为什么我们需要关心它? 如果你用过UE5,哪怕只是新建一个空白项目,放一个立方体进去,大概率也见过“Tick”这个词。在蓝图的“事件”图表里,那个每帧自动执行的“Event Tick”节点&#x…...

MySQL主从复制的binlog格式怎么选_ROW与MIXED格式优缺点分析

必须用ROW模式当业务要求主从100%一致时,如金融账务、订单状态、实时风控等场景,因其记录行级变更而非SQL语句,可彻底规避NOW()、UUID()等非确定性函数导致的主从不一致问题。什么时候必须用 ROW 模式如果你的业务要求主从数据 100% 一致&…...

C#联合halcon开发框架源码。 拖拽式编程,无halcon基础也能上手,匹配,测量,条码识...

C#联合halcon开发框架源码。 拖拽式编程,无halcon基础也能上手,匹配,测量,条码识别,ocr,定位引导,对位等,支持plc通讯,集成主流相机sdk,系统集成. 最近在工业视觉项目里折腾Halcon的时候&#x…...

别再死记公式了!手把手带你用Python脚本搞定二级运放GBW与相位裕度设计

用Python脚本解放模拟IC设计:二级运放GBW与相位裕度的自动化探索 在模拟集成电路设计的浩瀚海洋中,二级运算放大器就像是一艘精巧的帆船——结构看似简单,却需要设计师对每个参数都了如指掌才能驾驭得当。传统设计流程中,工程师们…...

将OpenSSH集成到OpenHarmony系统镜像:从编译到system分区的完整配置流程

OpenHarmony系统集成OpenSSH全流程:从编译到安全部署实战 在物联网和嵌入式设备快速发展的今天,远程设备管理已成为开发者不可或缺的能力。作为开源远程管理协议的黄金标准,OpenSSH在OpenHarmony系统中的集成能够为开发者提供安全可靠的远程访…...

claw-code 源码分析:结构化输出与重试——`structured_output` 一类开关如何改变「可解析性」与失败语义?

涉及源码:src/query_engine.py、src/runtime.py、src/main.py;Rust rust/crates/tools/src/lib.rs(StructuredOutput 工具);对照 rust/crates/claw-cli/src/app.rs(OutputFormat,与 Python 开关…...

QT点云渲染实战--从QGLWidget到交互式3D可视化

1. 为什么选择QT和QGLWidget做点云可视化 第一次接触3D点云渲染时,我试过用Python的Matplotlib,也折腾过PCL库,但真正要在工业软件中集成可视化功能时,QTQGLWidget的组合给了我惊喜。这个经典方案虽然不如现代WebGL炫酷&#xff0…...

从A*到Theta*:探索任意角度路径规划的演进与实战

1. 从A到Theta:路径规划的技术演进 十年前我第一次用A算法给游戏角色做路径规划时,被那些生硬的"阶梯式"移动路线折磨得不轻。想象一下,你的游戏角色明明可以直线奔向目标,却非要像象棋里的马一样走"日"字形&…...

喜欢搞技术的高技术、喜欢搞业务的搞业务

AI Flow Studio - 智能体编排平台> 🔥 2026年最热门的AI Agent编排平台 - 可视化流程设计、多模型集成、企业级管理项目概述AI Flow Studio 是一个现代化的 AI Agent 智能体编排与管理系统,提供可视化流程设计、多模态 AI 模型集成、企业级监控管理等…...

claw-code 源码分析:成本追踪(Cost)与 Hook——企业落地时,计量与策略注入该挂在哪一层?

涉及源码:rust/crates/runtime(usage.rs、conversation.rs、hooks.rs、config.rs、permissions)、rust/crates/api(流式 Usage)、rust/crates/plugins(插件 HookRunner)、rust/crates/claw-cli&…...

2026年精选50个高质量PHP源码下载网站推荐

在当今数字化时代,PHP作为一门广泛应用的服务器端脚本语言,凭借其易用性、灵活性和强大的社区支持,成为众多网站和应用程序开发的首选。无论是构建个人博客、企业官网,还是开发复杂的电商系统,PHP都能提供高效的解决方…...

从暴力搜索到理论最优:一道任务调度问题的完整算法演进历程

引言在算法竞赛的世界里,每一道题都像是一个等待解开的谜题。今天,我将与大家分享一道关于任务调度问题的完整解题心路历程。这个故事不仅记录了我从暴力搜索到最优算法的探索过程,更展现了在面对复杂问题时,如何通过逐步优化、深…...

深入解析IceCMS开源源码:轻量高效,新手也能上手的内容管理系统

在开源CMS领域,各类系统层出不穷,有的功能庞杂难以驾驭,有的过于简易无法满足多样化需求,而IceCMS凭借轻量、高效、易拓展的特点,成为许多个人站长和中小企业搭建网站的优选。作为一款开源内容管理系统,其源…...