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

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

第一步、安装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/


相关文章
|
7月前
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
611 1
|
8月前
|
Windows
Windows无法连接到打印机,请检查打印机名并重试 - 配置Windows 共享打印机出错;
WIN7共享打印机无法被WIN11连接,出现错误代码0x0000011b或0x00000709,可能是系统版本不兼容所致。本文提供多个轻量级修复工具,无需安装,双击即用,专为解决此类小问题设计,操作简单,适合普通用户快速修复打印机连接异常。
1078 0
|
7月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
401 18
|
7月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
663 17
|
8月前
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
9月前
|
C语言 图形学 Windows
Windows下安装和配置GTK4(基于CLion)
本文介绍了作者选择GTK作为C语言图形库的原因,包括代码简洁、控件丰富和界面美观,并分享了在Windows环境下通过MSYS2安装GTK4及在CLion中配置开发环境的详细步骤。
965 0
|
8月前
|
Ubuntu 应用服务中间件 Linux
在Ubuntu上配置Nginx实现开机自启功能
至此,Nginx应该已经被正确地设置为开机自启。在Ubuntu中利用 `systemd`对服务进行管理是一种高效的方式,为系统管理员提供了强大的服务管理能力,包括但不限于启动、停止、重启服务,以及配置服务的开机自启动。通过这些简洁的命令,即使是对Linux不太熟悉的用户也能轻松地进行配置。
389 0
|
前端开发 网络协议 JavaScript
在Spring Boot中实现基于WebSocket的实时通信
在Spring Boot中实现基于WebSocket的实时通信
|
开发框架 前端开发 网络协议
Spring Boot结合Netty和WebSocket,实现后台向前端实时推送信息
【10月更文挑战第18天】 在现代互联网应用中,实时通信变得越来越重要。WebSocket作为一种在单个TCP连接上进行全双工通信的协议,为客户端和服务器之间的实时数据传输提供了一种高效的解决方案。Netty作为一个高性能、事件驱动的NIO框架,它基于Java NIO实现了异步和事件驱动的网络应用程序。Spring Boot是一个基于Spring框架的微服务开发框架,它提供了许多开箱即用的功能和简化配置的机制。本文将详细介绍如何使用Spring Boot集成Netty和WebSocket,实现后台向前端推送信息的功能。
3721 1
|
11月前
|
Java
SpringBoot快速搭建WebSocket服务端和客户端
由于工作需要,研究了SpringBoot搭建WebSocket双向通信的过程,其他的教程看了许多,感觉讲得太复杂,很容易弄乱,这里我只展示快速搭建过程。
2799 1