詳解在Windows系統中生成ssl證書,實現nginx配置https的方法

目錄

      • 一、下載安裝OpenSSL
      • 二、證書生成
      • 三、修改nginx配置
      • 總結

Nginx 是一個高性能的HTTP和反向代理web服務器,在進行web項目開發時,大多都是使用nginx對外提供web服務。HTTPS (全稱:Hypertext Transfer Protocol Secure [5]),是以安全為目標的 HTTP 通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性。在nginx中配置https能夠為我們提供更為安全的web服務,下面便是nginx中配置https的具體實現步驟:

一、下載安裝OpenSSL

  1. 下載OpenSSL

    訪問 https://slproweb.com/products/Win32OpenSSL.html 選擇合適版本下載

在這里插入圖片描述

  1. 安裝OpenSSL

    下載完畢后根據提示進行安裝。

    在這里插入圖片描述

  2. 配置OpenSSL環境變量

    安裝完成后,添加環境變量OPENSSL_HOME,變量值為openssl的安裝目錄,并在Path中新建環境變量 %OPENSSL_HOME%\bin

  3. 驗證是否安裝成功

    打開cmd,輸入命令:openssl -version,出現以下提示,即安裝成功。

    在這里插入圖片描述


二、證書生成

  1. 創建私鑰

    在cmd中使用以下命令創建私鑰文件,取名為local-private.key并保存在指定目錄下。

    openssl genpkey -algorithm RSA -out D:/local-private.key -pkeyopt rsa_keygen_bits:2048
    

    參數解釋:

    參數含義作用
    -algorithm RSA指定密鑰算法使用 RSA 非對稱加密算法(目前最廣泛的標準)
    -out D:/local-private.key輸出文件路徑生成的私鑰將保存到 D:/local-private.key(Windows路徑)
    -pkeyopt rsa_keygen_bits:2048密鑰位長選項指定生成的 RSA 密鑰長度為2048位(安全標準值)
  2. 生成簽名

    在cmd中使用以下命令生成名為local-csr.csr的簽名文件并保存在指定目錄下。

    openssl req -new -key D:/local-private.key -out D:/local-csr.csr
    

    參數解析:

    參數含義作用
    -key D:/local-private.key私鑰文件路徑使用指定的 RSA 私鑰生成 CSR(必需)
    -out D:/local-csr.csr輸出文件路徑生成的 CSR 文件保存位置

    運行以上命令,會提示輸入一些證書信息,如:國家、省份、城市、組織、單位等,只需根據提示輸入即可。

在這里插入圖片描述

  1. 生成證書

    在cmd中使用以下命令生成有效期一年,名為local-cert.crt 的證書文件并保存在指定目錄下。

    openssl req -x509 -key D:/local-private.key -in D:/local-csr.csr -out D:/local-cert.crt -days 365
    

    參數解釋:

    參數含義作用
    -x509生成X509證書指定生成標準 X.509 格式的證書
    -key D:/local-private.key私鑰文件路徑用于簽名的私鑰(必須與生成 CSR 的私鑰匹配)
    -in D:/local-csr.csr輸入的CSR文件之前生成的證書簽名請求
    -out D:/local-cert.crt輸出證書路徑最終生成的自簽名證書文件
    -days 365有效期證書的有效時長(365天)

三、修改nginx配置

找到nginx的配置文件nginx.conf,參考下面的配置進行修改

#user  root;
worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;server {listen 80;server_name localhost localhost;return 301 https://$host$request_uri;}server {listen        443 ssl;server_name  localhost;ssl_certificate D:/local-cert.crt;ssl_certificate_key D:/local-private.key;ssl_session_cache    shared:SSL:1m;ssl_session_timeout  5m;ssl_ciphers  HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers  on;location / {root   html;index  index.html index.htm;}}
}

修改完畢后,保存配置文件,并重新啟動nginx,在瀏覽器地址欄中輸入https://localhost進行訪問,效果如下:

總結

本文簡單的介紹了在Windows系統下,nginx配置https的步驟,使用OpenSSL生成了證書,并在nginx配置文件nginx.conf中指定證書路徑,將80端口重定向為https訪問路勁。

相信按照以上步驟,都能夠很好的視實現nginx配置https。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/922114.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/922114.shtml
英文地址,請注明出處:http://en.pswp.cn/news/922114.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI視覺算法中的OpenCV API (二)

視頻寫入 (FourCC, VideoWriter)? 1. VideoWriter_fourcc - 視頻編碼器四字符代碼 # OpenCV 3.x, 4.x fourcc cv2.VideoWriter_fourcc(M,J,P,G)fourcc cv2.VideoWriter_fourcc(*H264)fourcc cv2.VideoWriter_fourcc(*MJPG) ?FourCC?: 代表 ?Four ?Charac…

分享| 2025年版AIGC數字人實驗室解決方案教學資源解析

AIGC數字人實驗室解決方案構建了涵蓋基礎層、平臺環境層與資源層的多層次教學架構,依托150平方米的實體空間與60人并行授課的規模化支持,為學生提供了技術實踐與創新的高效平臺。其教學資源體系覆蓋AIGC文本生成、圖像生成、數字人應用與智能體開發四大核…

內存大(巨)頁

一、大(巨)頁 大(巨)頁,很好理解,就是的大的頁。說這個大頁前,得先把計算機中內存的管理簡單說明一下,否則可能對于一些新手或者把操作系統中內存管理的方法的開發者不太友好。最早的…

langgraph astream使用詳解

langgraph中graph的astream(stream)方法分別實現異步(同步)流式應答,在langgraph-api服務也是核心方法,實現與前端的對接,必須要把這個方法弄明白。該方法中最重要的參數是stream_mode&#xff…

【C++】模板進階:非類型參數、模板特化與分離編譯

目錄 1. 非類型模板參數 2. 模板的特化 3. 分離編譯 1. 非類型模板參數 模板參數分類類型形參與非類型形參。 類型形參即:出現在模板參數列表中,跟在class或者typename之類的參數類型名稱。 非類型形參,就是用一個常量作為類(函數)模板…

棧-1047.刪除字符串中的所有相鄰重復項-力扣(LeetCode)

一、題目解析 1、反復執行重復項刪除操作 2、s僅由小寫英文字母組成 二、算法原理 該題并不難,難的是能不能想到用棧這個數據結構解題 解法:棧模擬 橫著看起來不好理解,我們把它豎起來,是不是和消消樂很類似,兩兩消…

【每日算法】移除元素 LeetCode

雙指針方法是解決數組或鏈表問題中非常高效的技巧之一,尤其適用于原地修改數組或減少時間復雜度的場景。以下是對雙指針方法的詳細講解。1. 雙指針方法的核心思想雙指針方法通常使用兩個指針(或索引)在數組或鏈表中協同工作,通過一…

Android 項目:畫圖白板APP開發(六)——分頁展示

本篇將介紹如何為我們的畫板應用添加分頁展示功能,讓用戶可以創建多個畫布并在它們之間輕松切換。這章沒有啥知識點的講解,主要介紹一下每頁保存的數據結構是什么樣的。 一、ListView 多頁數據的管理我們使用ListView。之前有文章講過ListView這里就不多…

智能眼鏡產品成熟度分析框架與評估

引言 當前(2025年9月12日),智能眼鏡(Smart Glasses)市場正處于快速演進階段,從早期的新奇設備向主流消費電子轉型。AI整合、AR顯示和多模態交互的進步推動了這一轉變。根據最新數據,2025年AI眼鏡發貨量預計達686萬臺,同比增長265%,全球市場規模從2024年的約19.3億美元…

(網絡編程)網絡編程套接字 UDP的socket API 代碼解析

網絡編程基礎 為什么需要網絡編程?--豐富的網絡資源 用戶在瀏覽器中,打開在線視頻網站,如優酷看視頻,實質是通過網絡,獲取到網絡上的一個視頻資源。與本地打開視頻文件類似,只是視頻文件這個資源的來源是網絡。 相比本地資源來說,網絡提供了更為豐富的網絡資源:所謂的網絡資源…

【STM32】狀態機(State Machine)

這篇博客介紹 狀態機(State Machine),適合用于嵌入式開發、驅動開發、協議解析、按鍵識別等多種場景。 一、什么是狀態機(State Machine)? 狀態機(State Machine)是一種用于描述系統…

深度學習在離崗檢測中的應用

離崗檢測技術正逐步成為現代企業精細化管理和安全生產的重要工具。這項基于計算機視覺和人工智能的應用,通過自動化、實時化的監測方式,有效提升了工作紀律性和運營效率,為項目管理者和企業提供了創新的監管解決方案。在許多工作場景中&#…

Spring緩存(二):解決緩存雪崩、擊穿、穿透問題

1. 緩存穿透問題與解決方案 1.1 什么是緩存穿透 緩存穿透是指查詢一個不存在的數據,由于緩存中沒有這個數據,每次請求都會直接打到數據庫。 如果有惡意用戶不斷請求不存在的數據,就會給數據庫帶來巨大壓力。 這種情況下,緩存失去了…

PHP 與 WebAssembly 的 “天然隔閡”

WebAssembly(簡稱 WASM)是一種低級二進制指令格式,旨在為高級語言提供高性能的編譯目標,尤其在瀏覽器環境中實現接近原生的執行效率。它主要用于前端性能密集型場景(如游戲引擎、視頻編解碼、3D 渲染等)&am…

unity中通過拖拽,自定義scroll view中子物體順序

1.在每個content的子物體上掛載DragHandler腳本,并且添加Canvs Group組件,設置見圖2.DragHandler腳本內容:using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; using System.Collections.Generic; using System.Coll…

用 Matplotlib 繪制餅圖:從基礎語法到實戰美化,全面掌握分類數據可視化技巧

用 Matplotlib 繪制餅圖:從基礎語法到實戰美化,全面掌握分類數據可視化技巧 在數據分析與可視化的世界里,**“圖勝千言”**早已成為共識。而在眾多圖表類型中,餅圖(Pie Chart)以其直觀的比例展示方式,成為展示分類數據分布的常見選擇。無論是業務報表、用戶畫像,還是市…

基礎算法之二分算法 --- 2

大家好,不同的時間,相同的地點,時隔多日我們又見面了。繼上次的二分算法后,我們這次要來學習的是二分答案了。這個部分相較于前面的二分算法難度有相當的提升,希望大家有所準備。雖然難度增加了,但是博主還…

發揮nano banana的最大能力

1. 概述Nano Banana 簡介:Nano Banana 是 Google DeepMind 開發的 AI 圖像生成與編輯模型,集成在 Google Gemini 平臺中(具體為 Gemini 2.5 Flash 版本)。它以高效的圖像編輯能力聞名,尤其在角色一致性、光影理解和快速…

leetcode 面試題01.02判定是否互為字符重排

一、問題描述二、解題思路解法一:對s1和s2進行sort排序,返回s1是否等于s2;解法二:用哈希表分別來記錄s1和s2中字符出現的次數,統計完后,判斷兩個哈希表是否相等;三、代碼實現解法一:時間復雜度&…

Python Yolo8 物體識別

支持單張圖片/圖片目錄批量預標注 默認使用cuda GPU .env HTTP_PROXYhttp://192.168.2.109:10808 HTTPS_PROXYhttp://192.168.2.109:10808pyproject.toml [project] name "yolo-test" version "0.1.0" description "Add your description here&quo…