websocket wss_使用wss和HTTPS / TLS保护WebSocket的安全
websocket wss
这个博客的第50条提示,是的!
技术提示#49说明了如何使用用户名/密码和Servlet安全机制保护WebSocket的安全。 本技术提示将说明如何在WildFly上使用HTTPS / TLS保护WebSockets。
让我们开始吧!
- 创建一个新的密钥库:
keytool -genkey -alias websocket -keyalg RSA -keystore websocket.keystore -validity 10950 Enter keystore password: Re-enter new password: What is your first and last name?[Unknown]: Arun Gupta What is the name of your organizational unit?[Unknown]: JBoss Middleware What is the name of your organization?[Unknown]: Red Hat What is the name of your City or Locality?[Unknown]: San Jose What is the name of your State or Province?[Unknown]: CA What is the two-letter country code for this unit?[Unknown]: US Is CN=Arun Gupta, OU=JBoss Middleware, O=Red Hat, L=San Jose, ST=CA, C=US correct?[no]: yesEnter key password for <websocket>(RETURN if same as keystore password): Re-enter new password:
使用“ websocket”作为便捷密码。
- 下载WildFly 8.1 ,解压缩,然后将“ websocket.keystore”文件复制到
standalone/configuration
目录standalone/configuration
目录中。 - 以以下方式启动WildFly:
./bin/standalone.sh
- 使用jboss-cli连接到它:
./bin/jboss-cli.sh -c
- 将新的安全领域添加为:
[standalone@localhost:9990 /] /core-service=management/security-realm=WebSocketRealm:add() {"outcome" => "success"}
并配置它:
[standalone@localhost:9990 /] /core-service=management/security-realm=WebSocketRealm/server-identity=ssl:add(keystore-path=websocket.keystore, keystore-relative-to=jboss.server.config.dir, keystore-password=websocket) {"outcome" => "success","response-headers" => {"operation-requires-reload" => true,"process-state" => "reload-required"} }
- 将新的HTTPS侦听器添加为:
[standalone@localhost:9990 /] /subsystem=undertow/server=default-server/https-listener=https:add(socket-binding=https, security-realm=WebSocketRealm) {"outcome" => "success","response-headers" => {"process-state" => "reload-required"} }
- 可以从github.com/javaee-samples/javaee7-samples/tree/master/websocket/endpoint-wss获得一个简单的示例,以显示基于TLS的WebSocket安全性。 克隆工作空间并将目录更改为“ websocket / endpoint-wss”。 该示例的部署描述符具有:
<security-constraint><web-resource-collection><web-resource-name>Secure WebSocket</web-resource-name><url-pattern>/*</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint> </security-constraint>
这样可以确保任何传入此应用程序的请求都将自动定向到HTTPS URL。
- 通过提供以下命令来部署示例:
mvn wildfly:deploy
现在访问http:// localhost:8080 / endpoint-wss重定向到https:// localhost:8080 / endpoint-wss 。 浏览器可能会抱怨自签名证书。 例如,Chrome显示以下警告:
Safari显示以下警告:
无论哪种情况,都单击“继续到本地主机”或“继续”以继续进行。 然后,建立安全的WebSocket连接。
要理解的另一个相关要点是,不能从受https保护的页面建立不安全的WebSocket连接。 例如我们示例中的以下代码:
new WebSocket("ws://localhost:8080/endpoint-wss/websocket");
将在Chrome开发者工具中引发以下异常:
[blocked] The page at 'https://localhost:8443/endpoint-wss/index.jsp' was loaded over HTTPS, but ran insecure content from 'ws://localhost:8080/endpoint-wss/websocket': this content should also be loaded over HTTPS.
Uncaught SecurityError: Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.
请享用!
翻译自: https://www.javacodegeeks.com/2014/10/securing-websocket-using-wss-and-httpstls.html
websocket wss
websocket wss_使用wss和HTTPS / TLS保护WebSocket的安全相关推荐
- 使用wss和HTTPS / TLS保护WebSocket的安全
是这个博客的第50条提示,是的! 技术提示#49说明了如何使用用户名/密码和Servlet安全机制保护WebSocket的安全. 本技术提示将说明如何在WildFly上使用HTTPS / TLS保护W ...
- Miles to go ... - Arun Gupta: Securing WebSocket using wss and HTTPS/TLS (Tech T
原文 http://www.tuicool.com/articles/goto?id=JR3mmy 50th tip on this blog, yaay! Tech Tip #49explained ...
- tomcat 将http协议改为https协议,Websocket请求ws协议修改为wss协议
tomcat 将http协议改为https协议,Websocket请求ws协议修改为wss协议 一. 说明 WS协议和WSS协议两个均是WebSocket协议的SCHEM,两者一个是非安全的,一个是安 ...
- SSL、WSS和HTTPS之间的关系
1. SSL SSL(Secure Socket Layer,安全套接层) 简单来说是一种加密技术, 通过它, 我们可以在通信的双方上建立一个安全的通信链路, 因此数据交互的双方可以安全地通信, 而不 ...
- WebSocket实战之四WSS配置
一.前言 上一篇文章WebSocket实战之三遇上PAC ,碰到的问题只能上安全的WebSocket(WSS)才能解决,配置证书还是挺麻烦的,主要是每年都需要重新更新证书,我配置过的证书最长有效期也 ...
- websocket 从ip端口升级https域名模式
做系统升级的时候前端有用到websocket做数据实时更新,之前用的websocket连接时ip加端口模式: this.ws = new WebSocket("ws://192.168.10 ...
- Nginx配置WebSocket 【支持wss与ws连接】
一.对wss与nginx代理wss的理解: 1.wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL). 2.利用nginx代理ws ...
- linux服务器创建wss服务 https+wss配置指南
创建wss服务 问: Workerman如何创建一个wss服务,使得客户端可以用过wss协来连接通讯,比如在微信小程序中连接服务端. 答: wss协议实际是websocket+SSL,就是在webso ...
- php curl模拟wss,使用Poco C++库创建websocket安全访问(wss)客户端
Poco websocket库特点: 1,使用http/https ClientSession创建websocket client 2,是同步的,这对C++桌面编程来说应该是够用的. 3,依赖open ...
最新文章
- Python 学习笔记(3)对txt文件的读与写操作(下)
- 数据结构与算法笔记(一)—— 引入概念、时间复杂度
- OCM备考 三. Managing Database Availability 之flashback
- 不断电系统的容量如何计算?
- ffmpeg 为取经而来_伊力特的英雄情结从何而来?
- 【Java】常见的异常和Throwable类
- 云图说|华为HiLens云上管理平台 花样管理多种端侧设备
- Jedis使用java连接Redis
- 对称数java算法_对称数的简单实现
- 在 Linux shell 中自由操作时间变量
- java动态代理实现与原理详细分析(【转载】By--- Gonjan )
- Head First 设计模式目录
- 华为NP课程笔记19-镜像技术
- 腾讯 csig 面试简述(已通过)
- 全国计算机等级考试安排表,2017年下半年(第49次)全国计算机等级考试安排表.PDF...
- CodeLite配置
- android usb micro,朝夕相伴不知芳名? 来补补USB接口知识
- 微信商家收款码和个人收款码区别,你知道吗?
- 怎么看待《百度清风算法3.0》?
- GD32f303 驱动之SPI
热门文章
- 【做题记录】CF1444A Division
- 2021“MINIEYE杯”中国大学生算法设计超级联赛(5)Random Walk 2(推式子+矩阵逆+矩阵乘)
- 洛谷-P1903 数颜色 分块 bitset
- codeforces F.F. Teodor is not a liar! 最长不降子序列
- Spark SQL(六)之加载数据的参数配置
- 一个正则表达式酿成的惨案
- 使用JDOM2.0.4 操作/解析xml
- 漫画:如何破解MD5算法
- 【博客】csdn搬家到wordpress
- ssm中spring mvc找不到控制器,报错404