需求

一般我们开发的应用程序,部署的时候使用的是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 证书部署

两种方式:

  1. 使用 openssl 命令,创建自签证书(一般为了保证安全会有一个专门的CA机构签发);(遇到问题,因为是证书是自签发的,使用wss无法访问,使用https 可以在curl 加 --insecure参数解决)
  2. 使用阿里云为特定域名创建证书;
    阿里云数字证书申请

申请好之后(使用 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相关推荐

  1. Nginx去配置socket的时候,发现nginx没有配置ws/wss协议,配置步骤如下

    配置之前需要知道ws协议和wss协议的区别 一.WS 和 WSS 的区别 WebSocket 协议是 html5 的一种通信协议,可以使客户端和服务端双向数据传输更加简单快捷,并且在 TCP 连接进行 ...

  2. linux7.3的域名配置表,Centos7.3 安装部署Nginx并配置https的方法步骤

    安装环境 1. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译 编译依赖 gcc 环境: yum install gcc-c++ 2. PCRE pcre-devel 安装 安装pcr ...

  3. nginx容器配置https后访问有时显示连接被重置

    问题描述 配置https的步骤很简单,我这里用的是阿里云的免费ssl证书,然后发现访问https时灵时不灵的,纠结了很久,重复了好几次配置步骤,然后发现配置步骤其实是没问题的,浏览器多刷新下,就能够出 ...

  4. Nginx——ubuntu安装Nginx并配置https

    一.需求 介绍: 我们在部署应用时,希望用到 Nginx ,并配置上 https .我在网上看了很多文章,感觉都不是很系统.因此写下此文,以备日后使用. 二.安装 Nginx 获取安装包 wget h ...

  5. kbengine 的 nginx反向代理https/wss 配置 支持kbe负载均衡

    微信开发要求 必须用https 和 wss连接, 这里给出nginx反向代理配置, 自己使用一切正常,希望能帮助大家.域名一定要在微信开发后台设置,不然连接不上, 域名要备案,不然 审核不通过. ng ...

  6. 在Linux系统安装Nginx及配置https加密访问

    2019独角兽企业重金招聘Python工程师标准>>> 1.安装nginx ①.为了确保能在 nginx 中使用正则表达式进行更灵活的配置,安装之前需要确定系统是否安装有 PCRE( ...

  7. Nginx下配置Https,测试环境的完整过程

    在本地的测试环境中,当我们没有https的证书时,又想使用https,我们该怎么办呢?我们可以在服务器中生成自己的证书,当然这个证书只能是用在测试环境中,因为他们没有经过第三方的认证. 下面是配置的过 ...

  8. Nginx配置https和wss

    微信小程序不仅要求必须是HTTPS和WSS,还要求URL里不能有端口号. 一.使用Nginx足够了 常见的服务器有三种: Nginx IIS Apache 这三种服务器都可以配置https,但是没必要 ...

  9. 一文搞懂Nginx如何配置Http、Https、WS、WSS!

    写在前面 当今互联网领域,Nginx是使用最多的代理服务器之一,很多大厂在自己的业务系统中都是用了Nginx作为代理服务器.所以,我们有必要了解下Nginx对于Http.Https.WS.WSS的各项 ...

最新文章

  1. PYTHON编程导论群问题汇总(三)
  2. jquery入门(一)
  3. 1688 复杂业务场景下的 Serverless 提效实践
  4. 线性表之顺序存储-顺序表
  5. Eric Evans说DDD还未结束
  6. python(11)-if语句,断言assert
  7. 单基因gsea_这篇3+分核心基因筛选,点个在看,我们复现这篇文章!
  8. 问题 G: 编写函数:数组的排序 (Append Code)
  9. jetson 安装atp-get install qt时出现 unable to locate 或者dependencies unmet的报错
  10. 处女座的比赛资格(拓扑排序)
  11. java实现逆波兰表达式求值
  12. 计算机毕业设计论文资料查找
  13. 什么是表压?什么是绝压?表压和绝压什么关系?
  14. [AHK]按住左键可以移动鼠标下的窗口
  15. 各个击破!高效解决游戏开发8大痛点
  16. React实现实时/局部刷新
  17. java date before,Java中的LocalDate isBefore()方法
  18. jmeter压测生成报告
  19. matlab使用教程公式求解,泰尔指数及分解公式的计算方法与Matlab实现
  20. 一、12前端开发入门之css装饰

热门文章

  1. 酒店智能门锁常见故障及解决办法
  2. Windows以及Chrome浏览器的一些使用技巧,快捷键,盲打练习网站分享
  3. usb相关资料整理(四)
  4. C++编译调试问题(一)
  5. 第一部分 项目管理探讨
  6. python小课离线版_全民编程——Python小短课,不做无头苍蝇
  7. 【jQuery/CSS】显示或隐藏元素
  8. 身份证阅读器(新中新)写入受保护内存问题,已解决
  9. CMT2119/2119A 示例代码及说明
  10. JavaFX最小化和通过动画最大化未装饰的舞台