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/

相关推荐

  1. Nginx Websocket 协议配置支持

    2024-02-22 15:58:02       21 阅读
  2. Nginx配置支持WebSocket功能

    2024-02-22 15:58:02       31 阅读
  3. Netty websocket配置wss

    2024-02-22 15:58:02       34 阅读
  4. windowsnginx配置https证书

    2024-02-22 15:58:02       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 15:58:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 15:58:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 15:58:02       87 阅读
  4. Python语言-面向对象

    2024-02-22 15:58:02       96 阅读

热门阅读

  1. ThreadLocal内存如何释放

    2024-02-22 15:58:02       65 阅读
  2. excel合并多列单元格并保留数据

    2024-02-22 15:58:02       65 阅读
  3. 数据库三范式

    2024-02-22 15:58:02       54 阅读
  4. 项目总结(ALL)

    2024-02-22 15:58:02       63 阅读
  5. Rust 安装

    2024-02-22 15:58:02       53 阅读
  6. IP分片重组功能的模拟实现

    2024-02-22 15:58:02       48 阅读
  7. 题目 1032: [编程入门]自定义函数之字符串连接

    2024-02-22 15:58:02       46 阅读
  8. 力扣96不同的二叉搜索树详解

    2024-02-22 15:58:02       40 阅读