windows下采用 nginx配置websocket支持wss流程

news2024/11/16 20:29:42

第一步、安装OpenSSL

(1)下载OpenSSL软件包

地址:https://slproweb.com/products/Win32OpenSSL.html

OpenSSL版本说明:

Win64 OpenSSL v1.1.1wLight,安装Win64 OpenSSL v1.1.1w最常用的软件包

Win64 OpenSSL v1.1.1w,安装Win64 OpenSSL v1.1.1w完整软件包

Win32 OpenSSL v1.1.1w Light,安装Win32 OpenSSL v1.1.1w最常用的软件包

Win32 OpenSSL v1.1.1w,安装Win32 OpenSSL v1.1.1w完整软件包

在这里插入图片描述


(2)、安装

在这里插入图片描述

选择安装目录

在这里插入图片描述


注意⚠️ 这一步,“Select Additional Tasks”,选择第二项 The OpenSSL binaries(/bin) directory。

原因:如果选择第一项,拷贝到系统目录,当其他软件使用的OpenSSL版本我们安装这个版本不同时,可能导致该软件无法使用。

所以选择将dll安装在OpenSSL安装目录下即可。

在这里插入图片描述


取消赞助,直接点完成即可。

在这里插入图片描述


(3)、验证安装

直接在cmd中,输入命令,查看OpenSSL版本

openssl version -a

如果你和我一样,并不是我们安装的OpenSSL 1.1.1w版本, 该怎么办呢?

如图:

在这里插入图片描述


解决方法:

在系统环境变量 path 字段中,将我们新安装的openssl目录移动到顶部即可。

在这里插入图片描述


再次验证,查看OpenSSL版本正确。

在这里插入图片描述


第二步、使用 OpenSSL 生成 SSL Key 和 CSR 文件

openssl req -new -newkey rsa:2048 -sha256 -nodes -out game_123.csr -keyout game_123.key -subj "/C=CN/ST=Sichuan/L=Chengdu/O=Nubomed Inc./OU=Web Security/CN=test.game.com"

下面是上述命令相关字段含义:

-new:指定生成一个新的CSR文件。

-nodes:指定密钥文件不被加密。

-sha256:指定摘要算法。

-newkey rsa:2048:指定密钥类型和长度。

-subj :相关字段含义

  • C:Country ,单位所在国家,为两位数的国家缩写,如: CN 是中国

  • ST 字段: State/Province ,单位所在州或省

  • L 字段: Locality ,单位所在城市 / 或县区

  • O 字段: Organization ,单位名称

  • OU 字段: Organization Unit,下属部门名称,也常用于显示证书相关信息,如证书类型、证书产品名称、身份验证类型、验证内容等

  • CN 字段: Common Name ,网站域名


第三步、生成crt文件

openssl x509 -trustout  -req -days 3650 -in game_123.csr -signkey game_123.key -out game_123.crt

第四步、下载nginx

下载地址:http://nginx.org/en/download.html

在这里插入图片描述


第五步、解压nginx-1.18.0.zip,在根目录下创建ssl文件夹,将上面生成的crt证书和key文件,复制到该目录下

在这里插入图片描述


第六步、修改配置文件nginx.conf

http内添加:

map $http_upgrade $connection_upgrade {  
        default upgrade;  
        '' close;  
    }  

    upstream websocket{
        server localhost:123;
    }

server添加:

    server {
        listen       123;
        server_name game.123.com;
        ssl on;
        ssl_certificate D:/nginx-1.18.0/ssl/game_123.crt;
        ssl_certificate_key D:/nginx-1.18.0/ssl/game_123.key;
        ssl_session_timeout 30m;
        ssl_verify_client off;

       location / {
        proxy_pass http://websocket;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
     }
    }

如图:

在这里插入图片描述

第七步,启动 nginx 服务

第八步、测试wss连接方式

wss://game.123:123/

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

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

相关文章

真实的数据如何获取

数据 在信息过载的互联网信息中挖掘有价值的信息是非常难的。 我自己退一步,要想寻求真实的信息也是非常难的。 那么关于个人博客具体浏览量的真实信息到底如何呢? 请看下图: 真相残酷,现实骨感。 核心 如果要抛开自欺欺人&a…

第二证券:5天骤降14!转融券市场再降温

转融券存量在快速下降。 到2月21日,转融券的存量股数为50.36亿股,近5个交易日内下降超20%。券商两融人士向券商我国记者表明,2月6日,证监会表明暂停转融券新增规划,存量逐渐了断,从目前的数据来看&#xf…

[corCTF 2022] CoRJail: From Null Byte Overflow To Docker Escape

前言 题目来源:竞赛官网 – 建议这里下载,文件系统/带符号的 vmlinux 给了 参考 [corCTF 2022] CoRJail: From Null Byte Overflow To Docker Escape Exploiting poll_list Objects In The Linux Kernel – 原作者文章,poll_list 利用方式…

7 数据迁移至达梦数据库

无论使用哪种解决方案很大可能性都需要进行数据迁移,即将旧的非 达梦数据库的数据迁移到达梦数据库。 我们要把 Nacos 的数据或者 SQL 语句迁移到达梦数据库。借助 DM 数据迁移工具 ,完成 Nacos 配置数据表迁移到达梦数据库。

ros自定义action记录

文章目录 自定义action1. 定义action文件2. 修改 package.xml3. 修改 CMakeLists.txt4. 运行 catkin build5. simple_action_server.py6. simple_action_client.py 测试 自定义action ros 版本:kinetic 自定义test包的文件结构如下 |-- test | |-- CMakeLists.t…

【9-1】实验——Neo4j实战操作

目录 一、Neo4j操作——CQL 1、常用CQL命令 2.常用CQL函数 3.图数据的形式 二、实战代码1.create命令 2. MATCH命令 三、使用neo4j工具导入知识图谱 1、工具:neo4j-admin 2、图谱导入: 3、更新图谱: 一、Neo4j操作——CQL 1、常用…

RMAN备份与恢复

文章目录 一、RMAN介绍二、全量备份三、增量备份0级备份1级增量备份累积性差量备份总结 四、压缩备份压缩备份介绍压缩备份操作压缩备份优缺点 五、异常恢复1、恢复前的准备2、恢复数据库 六、RMAN相关参数 一、RMAN介绍 RMAN(Recovery Manager)是Oracl…

啤酒:精酿啤酒与炸鸡的香脆搭配

炸鸡与啤酒,这对美食界的黄金搭档,早已成为了人们心目中的经典。而当Fendi Club啤酒遇上炸鸡,一场味觉的狂欢就此展开。 Fendi Club啤酒,以其醇厚的口感和淡淡的麦芽香气而著称。这款啤酒在酿造过程中采用了特别的工艺&#xff0c…

Android加载富文本

直接用webview加载: package com.example.testcsdnproject;import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.webk…

模型转换案例学习:等效替换不支持算子

文章介绍 Qualcomm Neural Processing SDK (以下简称SNPE)支持Caffe、ONNX、PyTorch和TensorFlow等不同ML框架的算子。对于某些特定的不支持的算子,我们介绍一种算子等效替换的方法来完成模型转换。本案例来源于https://github.com/quic/qidk…

js谐音梗创意小游戏《望子成龙》

🌻 前言 龙年到来,祥瑞满天。愿您如龙般矫健,事业腾飞;如龙鳞闪耀,生活美满。祝您龙年大吉,万事如意! 龙年伊始,我给各位设计了一款原创的小游戏,话不多说,直…

D5020——外围元件少,内含压缩器和扩展器静噪电路,可应用在1.5V立体声耳机上,响应时间可调

D5020是一块增益可调 的压缩、扩展电路。它有两个通道组成,一个通道作扩展用,另一个通道能作压缩或扩展用。电路内部含有小信号全波整流、检测信号的大小,用于调节输入或反馈通道的增益大小。含有温度特性较好的带隙精密基准源,静…

Leetcode 11.盛水最多的容器

题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。…

浏览器---浏览器/http相关面试题

1.localStorage和sessionStorage 共同点:二者都是以key-value的键值对方式存储在浏览器端,大小大概在5M。 区别: (1)数据有效期不同:sessionStorage仅在当前浏览器窗口关闭之前有效;localStorag…

C语言第二十八弹---整数在内存中的存储

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 目录 1、整数在内存中的存储 2、大小端字节序和字节序 2.1、什么是大小端? 2.2、为什么有大小端? 2.3、练习 2.3.1、练习1 2.3.2、练习2 2.…

安装SSH连接工具

连接Linux 1). 打开finalShell 2). 建立连接 Linux目录结构 在Linux系统中,也是存在目录的概念的,但是Linux的目录结构和Windows的目录结构是存在比较多的差异的 在Windows目录下,是一个一个的盘符(C盘、D盘、E盘),目…

使用python构建Android,探索跨平台应用开发Kivy框架

使用python构建Android,探索跨平台应用开发Kivy框架 1. 介绍Kivy框架 Kivy是什么? Kivy是一个开源的Python跨平台应用程序开发框架,旨在帮助开发者快速构建创新的、可扩展的移动应用和多点触控应用。Kivy采用MIT许可证,允许开发…

java数据结构与算法刷题-----LeetCode102. 二叉树的层序遍历

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 1. 法一:广度优先遍历(队列) 解题思路…

嵌入式Qt 计算器核心算法_2

一.中缀表达式转后缀表达式 中缀表达式是最常用的算术表达式形式——运算符在运算数中间。但运算时需要考虑运算符优先级。 ​后缀表达式是计算机容易运算的表达式,运算符在运算数后面,从左到右进行运算,无需考虑优先级,运算呈线性结构。 1 2 * 3// …

django自定义后端过滤

​ DRF自带的过滤 第一个 DjangoFilterBackend 是需要安装三方库见[搜索:多字段筛选]两外两个是安装注册了rest_framework就有。 如上图,只要配置了三个箭头所指的方向,就能使用。 第一个单字段过滤 用户视图集中加上filterset_fields …