Nginx之配置https/wss
需求
一般我们开发的应用程序,部署的时候使用的是http/ws协议,明文的,不安全。怎样让它安全的通过互联网传输呢?
解决
通过 nginx 在客户端和服务端做一个转发,客户端通过 https/wss 访问,然后和服务端的 http/ws 协议通信。即将一个 http/ws 项目,比方说,地址在 http/ws://localhost:8000, 现在我使用 nginx 将它转发到 http/wss://bkhech.top(申请的域名) 上
nginx配置
SSL 模块安装
查看 nginx 是否安装 http_ssl_module 模块
1. /usr/local/nginx/sbin/nginx -V
如果出现 configure arguments: –with-http_ssl_module, 则已安装,直接跳过。否则执行下一步
2. cd /root/nginx-1.9.2 && ./configure --prefix=/usr/local/nginx --with-http_ssl_module
找到nginx安装目录,并重新执行 configure 命令。使用 make 命令编译(使用make install会重新安装nginx,不要执行),此时当前目录会出现 objs 文件夹。
3. cp ./objs/nginx /usr/local/nginx/sbin/
用新的 nginx 文件覆盖当前的 nginx 文件。
4. /usr/local/nginx/sbin/nginx -V
再次查看安装的模块(configure arguments: –with-http_ssl_module说明ssl模块已安装)
SSL 证书部署
两种方式:
- 使用 openssl 命令,创建自签证书(一般为了保证安全会有一个专门的CA机构签发);(遇到问题,因为是证书是自签发的,使用wss无法访问,使用https 可以在curl 加 --insecure参数解决)
- 使用阿里云为特定域名创建证书;
阿里云数字证书申请
申请好之后(使用 bkhech.top 域名申请的),将证书放在服务器的 /usr/local/nginx/conf/ssl 目录
[root@localhost ssl]# pwd
/usr/local/nginx/conf/ssl
[root@localhost ssl]# ll
总用量 8
-rw-r--r--. 1 root root 1675 10月 21 19:56 server.key
-rw-r--r--. 1 root root 3805 10月 21 19:56 server.pem
conf配置
编辑 /usr/local/nginx/conf/vhosts/default.conf,在原有的配置中加入圈红的配置代码
重启nginx
重启nginx,访问服务进行验证即可。
# 重启
/usr/local/nginx/conf/sbin/nginx -s reload
# 验证
1. curl https://a-resource.top/a-static/my2.html --insecure
hello my static resource-a page22. curl https://b-resource.top/b-static/my2.html --insecure
hello my static resource-b page23. curl https://api.top/a-api/v7/game/gameSurface/recGame --insecure
{"flag": 0,"code": "500","message": "网络异常,请稍后再试"
}
4.使用在线websocket测试工具(http://coolaf.com/tool/chattest)[root@localhost ~]# /root/node_modules/wscat/bin/wscat -c wss://bkhech.top/a-websocket/Connected (press CTRL+C to quit)> hello world< Server received from client: hello world
参考资料
阿里云SSL证书免费申请全过程
Nginx之配置https/wss相关推荐
- Nginx去配置socket的时候,发现nginx没有配置ws/wss协议,配置步骤如下
配置之前需要知道ws协议和wss协议的区别 一.WS 和 WSS 的区别 WebSocket 协议是 html5 的一种通信协议,可以使客户端和服务端双向数据传输更加简单快捷,并且在 TCP 连接进行 ...
- linux7.3的域名配置表,Centos7.3 安装部署Nginx并配置https的方法步骤
安装环境 1. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译 编译依赖 gcc 环境: yum install gcc-c++ 2. PCRE pcre-devel 安装 安装pcr ...
- nginx容器配置https后访问有时显示连接被重置
问题描述 配置https的步骤很简单,我这里用的是阿里云的免费ssl证书,然后发现访问https时灵时不灵的,纠结了很久,重复了好几次配置步骤,然后发现配置步骤其实是没问题的,浏览器多刷新下,就能够出 ...
- Nginx——ubuntu安装Nginx并配置https
一.需求 介绍: 我们在部署应用时,希望用到 Nginx ,并配置上 https .我在网上看了很多文章,感觉都不是很系统.因此写下此文,以备日后使用. 二.安装 Nginx 获取安装包 wget h ...
- kbengine 的 nginx反向代理https/wss 配置 支持kbe负载均衡
微信开发要求 必须用https 和 wss连接, 这里给出nginx反向代理配置, 自己使用一切正常,希望能帮助大家.域名一定要在微信开发后台设置,不然连接不上, 域名要备案,不然 审核不通过. ng ...
- 在Linux系统安装Nginx及配置https加密访问
2019独角兽企业重金招聘Python工程师标准>>> 1.安装nginx ①.为了确保能在 nginx 中使用正则表达式进行更灵活的配置,安装之前需要确定系统是否安装有 PCRE( ...
- Nginx下配置Https,测试环境的完整过程
在本地的测试环境中,当我们没有https的证书时,又想使用https,我们该怎么办呢?我们可以在服务器中生成自己的证书,当然这个证书只能是用在测试环境中,因为他们没有经过第三方的认证. 下面是配置的过 ...
- Nginx配置https和wss
微信小程序不仅要求必须是HTTPS和WSS,还要求URL里不能有端口号. 一.使用Nginx足够了 常见的服务器有三种: Nginx IIS Apache 这三种服务器都可以配置https,但是没必要 ...
- 一文搞懂Nginx如何配置Http、Https、WS、WSS!
写在前面 当今互联网领域,Nginx是使用最多的代理服务器之一,很多大厂在自己的业务系统中都是用了Nginx作为代理服务器.所以,我们有必要了解下Nginx对于Http.Https.WS.WSS的各项 ...
最新文章
- PYTHON编程导论群问题汇总(三)
- jquery入门(一)
- 1688 复杂业务场景下的 Serverless 提效实践
- 线性表之顺序存储-顺序表
- Eric Evans说DDD还未结束
- python(11)-if语句,断言assert
- 单基因gsea_这篇3+分核心基因筛选,点个在看,我们复现这篇文章!
- 问题 G: 编写函数:数组的排序 (Append Code)
- jetson 安装atp-get install qt时出现 unable to locate 或者dependencies unmet的报错
- 处女座的比赛资格(拓扑排序)
- java实现逆波兰表达式求值
- 计算机毕业设计论文资料查找
- 什么是表压?什么是绝压?表压和绝压什么关系?
- [AHK]按住左键可以移动鼠标下的窗口
- 各个击破!高效解决游戏开发8大痛点
- React实现实时/局部刷新
- java date before,Java中的LocalDate isBefore()方法
- jmeter压测生成报告
- matlab使用教程公式求解,泰尔指数及分解公式的计算方法与Matlab实现
- 一、12前端开发入门之css装饰