websocket wss

这个博客的第50条提示,是的!

技术提示#49说明了如何使用用户名/密码和Servlet安全机制保护WebSocket的安全。 本技术提示将说明如何在WildFly上使用HTTPS / TLS保护WebSockets。

让我们开始吧!

  1. 创建一个新的密钥库:

    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”作为便捷密码。

  2. 下载WildFly 8.1 ,解压缩,然后将“ websocket.keystore”文件复制到standalone/configuration目录standalone/configuration目录中。
  3. 以以下方式启动WildFly:
    ./bin/standalone.sh
  4. 使用jboss-cli连接到它:
    ./bin/jboss-cli.sh -c
  5. 将新的安全领域添加为:
    [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"}
    }
  6. 将新的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"}
    }
  7. 可以从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。

  8. 通过提供以下命令来部署示例:
    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的安全相关推荐

  1. 使用wss和HTTPS / TLS保护WebSocket的安全

    是这个博客的第50条提示,是的! 技术提示#49说明了如何使用用户名/密码和Servlet安全机制保护WebSocket的安全. 本技术提示将说明如何在WildFly上使用HTTPS / TLS保护W ...

  2. 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 ...

  3. tomcat 将http协议改为https协议,Websocket请求ws协议修改为wss协议

    tomcat 将http协议改为https协议,Websocket请求ws协议修改为wss协议 一. 说明 WS协议和WSS协议两个均是WebSocket协议的SCHEM,两者一个是非安全的,一个是安 ...

  4. SSL、WSS和HTTPS之间的关系

    1. SSL SSL(Secure Socket Layer,安全套接层) 简单来说是一种加密技术, 通过它, 我们可以在通信的双方上建立一个安全的通信链路, 因此数据交互的双方可以安全地通信, 而不 ...

  5. WebSocket实战之四WSS配置

    一.前言 上一篇文章WebSocket实战之三遇上PAC  ,碰到的问题只能上安全的WebSocket(WSS)才能解决,配置证书还是挺麻烦的,主要是每年都需要重新更新证书,我配置过的证书最长有效期也 ...

  6. websocket 从ip端口升级https域名模式

    做系统升级的时候前端有用到websocket做数据实时更新,之前用的websocket连接时ip加端口模式: this.ws = new WebSocket("ws://192.168.10 ...

  7. Nginx配置WebSocket 【支持wss与ws连接】

    一.对wss与nginx代理wss的理解: 1.wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL). 2.利用nginx代理ws ...

  8. linux服务器创建wss服务 https+wss配置指南

    创建wss服务 问: Workerman如何创建一个wss服务,使得客户端可以用过wss协来连接通讯,比如在微信小程序中连接服务端. 答: wss协议实际是websocket+SSL,就是在webso ...

  9. php curl模拟wss,使用Poco C++库创建websocket安全访问(wss)客户端

    Poco websocket库特点: 1,使用http/https ClientSession创建websocket client 2,是同步的,这对C++桌面编程来说应该是够用的. 3,依赖open ...

最新文章

  1. Python 学习笔记(3)对txt文件的读与写操作(下)
  2. 数据结构与算法笔记(一)—— 引入概念、时间复杂度
  3. OCM备考 三. Managing Database Availability 之flashback
  4. 不断电系统的容量如何计算?
  5. ffmpeg 为取经而来_伊力特的英雄情结从何而来?
  6. 【Java】常见的异常和Throwable类
  7. 云图说|华为HiLens云上管理平台 花样管理多种端侧设备
  8. Jedis使用java连接Redis
  9. 对称数java算法_对称数的简单实现
  10. 在 Linux shell 中自由操作时间变量
  11. java动态代理实现与原理详细分析(【转载】By--- Gonjan )
  12. Head First 设计模式目录
  13. 华为NP课程笔记19-镜像技术
  14. 腾讯 csig 面试简述(已通过)
  15. 全国计算机等级考试安排表,2017年下半年(第49次)全国计算机等级考试安排表.PDF...
  16. CodeLite配置
  17. android usb micro,朝夕相伴不知芳名? 来补补USB接口知识
  18. 微信商家收款码和个人收款码区别,你知道吗?
  19. 怎么看待《百度清风算法3.0》?
  20. GD32f303 驱动之SPI

热门文章

  1. 【做题记录】CF1444A Division
  2. 2021“MINIEYE杯”中国大学生算法设计超级联赛(5)Random Walk 2(推式子+矩阵逆+矩阵乘)
  3. 洛谷-P1903 数颜色 分块 bitset
  4. codeforces F.F. Teodor is not a liar! 最长不降子序列
  5. Spark SQL(六)之加载数据的参数配置
  6. 一个正则表达式酿成的惨案
  7. 使用JDOM2.0.4 操作/解析xml
  8. 漫画:如何破解MD5算法
  9. 【博客】csdn搬家到wordpress
  10. ssm中spring mvc找不到控制器,报错404