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/


相关文章
|
3天前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
|
3天前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400(2)
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400(2)
|
4天前
|
负载均衡 安全 应用服务中间件
nginx配置ssl和反向代理的配置代码
【5月更文挑战第2天】nginx配置ssl和反向代理的配置代码
23 3
|
7天前
|
负载均衡 应用服务中间件 nginx
解决nginx配置负载均衡时invalid host in upstream报错
在Windows环境下,配置Nginx 1.11.5进行负载均衡时遇到问题,服务无法启动。错误日志显示“invalid host in upstream”。检查发现上游服务器列表中,192.168.29.128的主机地址无效。负载均衡配置中,两个服务器地址前误加了"http://"。修正方法是删除上游服务器列表和proxy_pass中的"http://"。问题解决后,Nginx服务应能正常启动。
48 4
解决nginx配置负载均衡时invalid host in upstream报错
|
9天前
|
应用服务中间件 nginx
nginx配置集群轮训策略
nginx配置集群轮训策略
428 0
|
9天前
|
安全 网络协议 应用服务中间件
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
|
9天前
|
应用服务中间件 PHP nginx
php如何实现检测nginx配置的正确性
请确保在执行此操作时,PHP有足够的权限来执行Nginx命令和访问Nginx配置文件。另外,将上述代码嵌入到您的应用程序中时,要注意安全性,以防止潜在的命令注入攻击。
55 3
|
网络协议 前端开发 安全
websocket和http的瓜葛以及websocket协议实现
websocket和http的瓜葛以及websocket协议实现
websocket和http的瓜葛以及websocket协议实现
|
JavaScript
js实现websocket实例
js实现websocket实例
201 0
|
消息中间件 网络协议 前端开发
SpringBoot轻松整合WebSocket,实现Web在线聊天室
前面为大家讲述了 Spring Boot的整合Redis、RabbitMQ、Elasticsearch等各种框架组件;随着移动互联网的发展,服务端消息数据推送已经是一个非常重要、非常普遍的基础功能。今天就和大家聊聊在SpringBoot轻松整合WebSocket,实现Web在线聊天室,希望能对大家有所帮助。
SpringBoot轻松整合WebSocket,实现Web在线聊天室