NGINX服务器配置实现加密的WebSocket连接WSS协议

一、背景

最近在做小程序开发,需要在nginx中配置websocket加密模式,即wss。初次配置wss时,踩了两个小时的坑,本文将踩坑过程分享给大家,有需要用到的伙伴可以直接copy即可实现,节省宝贵时间。
在这里插入图片描述

二、WebSocket网络通信协议介绍

WebSocket是一种网络通信协议,提供了一种在单个TCP连接上进行全双工通信的方式。WebSocket通信协议于2011年被IETF(互联网工程任务组)标准化为RFC 6455。
WebSocket协议有两种URI模式, 分别是:

  • ws://: 用于未加密的WebSocket连接;
  • wss://: 用于加密的WebSocket连接,类似于HTTPS。

wss://这种模式运作在TLS(传输层安全协议)之上,从而为WebSocket通信提供了加密和身份验证的功能。这对于防止中间人攻击和保护数据安全性非常关键,尤其是在传输敏感数据时。

要使用wss协议,服务器必须配置有效的SSL/TLS证书,这和配置HTTPS类似。当客户端通过wss://发起连接时,客户端和服务器之间会进行TLS握手,如果握手成功,之后的数据传输都将是加密的。

三、踩坑过程

初次配置,搜索了下,先看到了 https://developers.weixin.qq.com/community/develop/article/doc/000ca2306f8b180393dba276356413 ,被误解了,看了后,感觉很麻烦,看评论区,也有人在问按说的配置后,仍然无法实现,然后发现本篇只是一部分,又找到了另一部分 https://developers.weixin.qq.com/community/develop/article/doc/000c84d00087c0d497dbfca545d813,发现还需要借助第三方软件,看完文章,从常理思考,不应该这么复杂,所以就没有按这种方式进行尝试,已耽误了一些时间。

再次找到一个知乎上的 https://www.zhihu.com/question/285245830?utm_id=0, 关键配置截图如下:
在这里插入图片描述
copy关键配置到nginx,并修改为真实的服务器+端口, 但ngixn reload失败, 只检查了中英文符号,没有深究,关键是不熟悉,也没找到原因,后面才发现,upgrade应该是大写U才可以,这块测试验证也耽误了一些时间。

第三次找到https://blog.csdn.net/liulangerde/article/details/104571552, 关键配置截图如下:
在这里插入图片描述
看到这里Upgrade是大写,抱着死马当活马医的态度,修改试了下,居然真可以了。
在这里插入图片描述
在这里插入图片描述

四、总结:

Nginx的配置,作为程序员,并没有深入去学习,只是会常用的一些配置,nginx的文档也不常使用,通常都是抱着通过搜索快速找到答案想法,注定会踩了一些坑,后面试了GPT4,回答的结果也是小写的upgrade, 故分享给大家。

参考:https://developers.weixin.qq.com/community/develop/article/doc/000ca2306f8b180393dba276356413 这个是被误入歧途,耽搁了好久
https://www.zhihu.com/question/285245830?utm_id=0 小写问题,也没成功。
https://blog.csdn.net/liulangerde/article/details/104571552 这个直接复制,测试就可以了。

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

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

相关文章

代码随想录第41天|● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集

文章目录 背包问题背包题目解法一 ● 01背包问题-二维数组五部曲1.确定dp数组2、确定递推公式3、初始化dp数组4、循环代码: 解法二-01背包问题-滚动数组五部曲1:定义dp二、递推公式三、初始化四、循环顺序代码: 698. 划分为k个相等的子集题解…

FairyGUI × Cocos Creator 3.x 使用方式

前言 上一篇文章 FariyGUI Cocos Creator 入门 简单介绍了FairyGUI,并且按照官方demo成功在Cocos Creator2.4.0上运行起来了。 当我今天使用Creator 3.x 再引入2.x的Lib时,发现出现了报错。 这篇文章将介绍如何在Creator 3.x上使用fgui。 引入 首先&…

uniapp开发安卓app华为平板真机预览

首先使用数据线连接平板和电脑设备 一、前期准备 平板需要开启三个地方: 1、打开设置,在搜索框中输入版本号/或者直接点击最下方的【关于平板电脑】,点击版本号进入关于平板的界面,连续点击版本号7次,直到出现提醒“…

2.25基础会计学

资本公积是指由股东投入、但不能构成“股本”或“实收资本”的资金部分。 盈余公积是指公司按照规定从净利润中提取的各种积累资金。 所以区别在于盈余公积来自净利润。 借贷其实就是钱从哪来和到哪去的问题,来源是贷,流向是借。比如购入9w原材料&…

基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法. 2.测试软件版本以及运行结果展示 MATLAB2022a版本运行 3.核心程序 ........................…

facebook群控如何做?使用静态住宅ip代理有什么好处?

在进行Facebook群控时,ip地址的管理是非常重要的,因为Facebook通常会检测ip地址的使用情况,如果发现有异常的使用行为,比如从同一个ip地址频繁进行登录、发布内容或者在短时间内进行大量的活动等等,就会视为垃圾邮件或…

RK3568平台开发系列讲解(Linux系统篇)字符设备驱动:分配和注册字符设备

🚀返回专栏总目录 文章目录 一、分配和注册字符设备二、file_operations沉淀、分享、成长,让自己和他人都能有所收获!😄 一、分配和注册字符设备 字符设备在内核中表示为struct cdev的实例。在编写字符设备驱动程序时,目标是最终创建并注册与struct file_operations关联…

栈和队列笔试题

答案:(1)seqn[tail]data; tail(tail1)%SEQLEN; (2)data seqn[head]; head (head1)%SEQLEN; (3)head tail; (4)(tail1)%SEQLEN head; (5) while(head!tail) head (h…

JVM内存结构介绍

1.程序计数器(Program Counter Register) 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现&…

电商评价分析:NLP信息抽取技术在用户评论中的应用与挖掘

一、引言 在2019年,电子商务的蓬勃发展不仅推动了消费市场的增长,也带来了海量的用户评价数据。这些数据,作为消费者对商品和服务直接反馈的载体,蕴含着巨大的价值。然而,由于其非结构化的特性,这些文本信息…

解决ssh:connect to host github.com port 22: Connection timed out与kex_exchange_identification

一、问题 无法进行clone项目和其他Git操作。执行检测连接命令 ssh -T gitgithub,com报错 ssh:connect to host github.com port 22: Connection timed out 即:连接22端口超时 涉及到的文件: C:\Users\JIACHENGER.ssh\config C:\Users\JIACHENGER.ssh\…

Python实用技巧:输出列表(list)的倒序/逆序的几种方法

Python实用技巧:输出列表(list)的倒序/逆序的几种方法 📅2024年02月25日 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质…

Linux修改shell工具连接端口

nano /etc/ssh/sshd_config 或者 vi /etc/ssh/sshd_config 或者 vim /etc/ssh/sshd_config

港口人车防撞定位方案

大家好,我是北京华星智控公司小智,今天给大家介绍港口人员定位防撞安全管控方案。 首先说明项目建设背景、目的和面临的挑战,背景介绍: 港口作为货物运输和交换的重要节点,人员和机械设备频繁活动,存在碰撞…

统信UOS系统窗口特效设置

原文链接:统信UOS系统设置窗口特效 在今天的技术分享中,我们将探讨如何在统信UOS系统上充分利用窗口特效来美化和提升用户界面的交互体验。统信UOS作为一款注重视觉体验和用户友好性的操作系统,提供了丰富的窗口特效设置,让用户可…

详解 CSS 的背景属性

详解 CSS 的背景属性 背景颜色 语法: background-color: [指定颜色]; 注:默认是 transparent (透明) 的,可以通过设置颜色的方式修改 示例代码: 运行效果: 背景图片 语法:background-image: url(...); url 可以是绝对路径 也可…

小苯的IDE括号问题(CD) -----牛客小白月赛87(双链表)

C题&#xff1a;C-小苯的IDE括号问题&#xff08;easy&#xff09;_牛客小白月赛87 (nowcoder.com) D题&#xff1a; D-小苯的IDE括号问题&#xff08;hard&#xff09;_牛客小白月赛87 (nowcoder.com) C题代码&#xff1a; #include<bits/stdc.h>using namespace std…

模型 OIIC(目标、障碍、洞察、挑战)

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_总纲目录。沟通方案工具。 1 OIIC(目标、障碍、洞察、挑战)模型的应用 1.1 OIIC 驱动的汽车配件渠道优化 一家知名的汽车配件制造商&#xff0c;旗下品牌拥有众多产品&#xff0c;其销售渠道广泛&#xff0c;不仅在…

【涨薪技术】掌握加密签名接口测试实战!

接口加密是指在网络传输过程中&#xff0c;将数据进行加密&#xff0c;以保护数据的安全性。接口加密可以采用多种加密算法&#xff0c;如AES、DES、RSA等。测试接口加密的目的是验证接口加密算法的正确性和安全性。 1加密与加密算法 加密&#xff08;Encrypt&#xff09;是将…

平衡,才是世界生生不息的真谛

凤凰涅槃&#xff0c;浴火重生。这句话是很有哲理的&#xff0c;可以运用到命运中。而对于命运&#xff0c;以中为最好&#xff0c;即是平衡。然而&#xff0c;每一个人&#xff0c;都是要经历命运的锤炼&#xff0c;无论怎样锤炼&#xff0c;都要保持一颗善良的心&#xff0c;…