【前端】使用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
繁體地址,請注明出處:http://hk.pswp.cn/diannao/84885.shtml
英文地址,請注明出處:http://en.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 實現實時圖像處理,突出雙光子成像的深度開發…