目录

      • 一、下载安装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…