websocket wss_使用wss和HTTPS / TLS保护WebSocket的安全

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显示以下警告:

techtip50-certificate-chrome

Safari显示以下警告:

techtip50证书

无论哪种情况,都单击“继续到本地主机”或“继续”以继续进行。 然后,建立安全的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

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

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

相关文章

C语言文件生成静态库lib

最近看到一个模块的程序&#xff0c;在阅读的时候发现一个函数有引用&#xff0c;有声明&#xff0c;却找不到在哪里定义&#xff0c;模块只有头文件没有对应的.c文件&#xff0c;顿生疑惑&#xff0c;想着这程序怎么能运行呢。后来发现文件夹中有个后缀为.a的文件&#xff0c;…

win10打开计算机黑屏怎么办,教你如何解决win10电脑开机黑屏的问题

今天来聊聊一篇关于教你如何解决win10电脑开机黑屏的问题的文章,现在就为大家来简单介绍下教你如何解决win10电脑开机黑屏的问题,希望对各位小伙伴们有所帮助。win10电脑开机黑屏的解决办法&#xff1a;操作步骤&#xff1a;1、win10系统开机的时候一直按F8直到进入高级恢复界面…

C语言加减乘除运算

加减乘除是常见的数学运算&#xff0c;C语言当然支持&#xff0c;不过&#xff0c;C语言中的运算符号与数学中的略有不同&#xff0c;请见下表。加法减法乘法除法求余数&#xff08;取余&#xff09;数学 -无C语言 -*/%C语言中的加号、减号与数学中的一样&#xff0c;乘号、除号…

计算机实践ps折扇,用PS打造一把水墨画折扇的教程

一、新建一个600 * 400像素的文件&#xff0c;背景填充为白色&#xff0c;新建一个图层按Alt Ctrl ’调出往格线&#xff0c;然后选择钢笔工具勾出下图所示的路径。二、按Ctrl Enter把路径转为选区&#xff0c;填充为40%灰&#xff0c;再新建一个图层&#xff0c;在下端点一…

输出 Hello World 混乱C语言的源代码

下面的六个程序片段主要完成这些事情&#xff1a;输出Hello, World混乱C语言的源代码下面的所有程序都可以在GCC下编译通过&#xff0c;只有最后一个需要动用C 的编译器g 才能编程通过。lns"http://www.w3.org/2000/svg" x"0px" y"0px" viewbox&…

电商常用同义词库_【福利】不可错过的电商设计神器,提高工作效率

开启高效设计&#xff0c;拒绝每天加班&#xff0c;设计助理插件&#xff0c;设计师高效设计神器&#xff0c;让你早下班的设计神器&#xff1b;今天介绍一款非常人性化的插件&#xff0c;尤其适合做电商设计的小伙伴设计助理插件官网视频介绍↓设计助理插件https://www.zhihu.…

turtle fillcolor_使Python中的turtle模块画图两只小羊

import turtle import time import math as m class Sheep(object):def __init__(self,xsize):self.t turtle.Turtle()self.xsize xsizet self.t# 画笔设置t.screen.screensize(canvwidth1000,canvheight500,bgwhite)t.pensize(2)t.speed(10)# t.hideturtle()#初始化画笔位置…

C语言实现魔方阵代码及解析

问题描述编写程序&#xff0c;实现如下表所示的5-魔方阵。172418152357141646132022101219213111825295-魔方阵问题分析所谓“n-魔方阵”&#xff0c;指的是使用1〜n2共n2个自然数排列成一个nn的方阵&#xff0c;其中n为奇数&#xff1b;该方阵的每行、每列及对角线元素之和都相…

xbox360 功率测试软件,【外星人 Alpha ASM100-1580 游戏主机使用总结】性能|电压|功耗|跑分_摘要频道_什么值得买...

外星人 Alpha ASM100-1580 游戏主机使用总结(性能|电压|功耗|跑分)在讨论性能之前&#xff0c;再最后看一看电源。NUC电源外置是必然&#xff0c;除了体积之外&#xff0c;还要考虑散热&#xff0c;所以&#xff0c;电源外置至少在目前来看还是最优解。这款电源是台达电子代工的…

openfire消息通知推送_微信小游戏内测「订阅消息」能力,这是召回用户的「大杀器」吗?...

作者&#xff1a;蒋鸿昌本文来源于「知晓程序」公众号。知晓云后端云服务&#xff0c;让你的小程序开发快人一步&#xff0c;添加「minsupport3」了解详情。知晓云​cloud.minapp.com一位投资人曾把最近 3 年微信公开课 Pro 版上张小龙的演讲称为「小程序 3 篇」&#xff1a;如…

c语言心形告白代码实现

1.彩色告白includeincludeincludeincludedefine U 0.1define V 0.053void SetColor(unsigned short ForeColor,unsigned short BackGroundColor){HANDLE hConGetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hCon,(ForeColor)|(BackGroundColor16));}int main(){int …

mysql 隐藏中间四位_MySQL知识体系——索引

本文直切主题&#xff0c;针对InnoDB引擎描述索引及优化策略。在开始之前&#xff0c;需要读者了解&#xff1a;二叉查找树(包括2-3查找树、红黑树等数据结构)MySQL的InnoDB引擎基础知识索引初探要了解索引&#xff0c;当然要了解其数据结构。树有很多应用&#xff0c;流行的用…

均值差异大但是t检验不显著_T检验原理及介绍

T检验原理及应用介绍一、T检验的应用场景&#xff1a;应用场景&#xff1a;可以用于研究工艺更改前后对于产品质量是否有显著提高&#xff1b;研究不同的热处理温度对于产品性能&#xff0c;晶粒度等是否有明显效果&#xff1b;研究不同的设备或人员对于产品质量的影响是否有差…

javafx ui_调用以验证JavaFX UI的响应能力

javafx ui最近&#xff0c;吉姆韦弗&#xff08;Jim Weaver&#xff09;在他的Surface Pro上安装了我的小图片索引应用“ picmodo”作为演示&#xff0c;图形用户界面&#xff08;GUI&#xff09;变成了垃圾。 显然&#xff0c;Windows Tablet上JavaFX的基本字体大小很高&…

众辰nz200变频器使用说明书_ABB变频器

ABB变频器&#xff0c;广州丰电自动化设备有限公司是一家专业从事工业计算机、工业自动化产品、电线电缆、仪器仪表销售、安装、维修&#xff1b;变频控制系统、变频恒压供水系统、变频节能系统的设计及安装&#xff0c;提供自动化工程技术服务及成套解决方案于一体的科技企业。…

pb 执行存储过程带参数_PB级海量数据服务平台架构设计实践

基于PB级海量数据实现数据服务平台&#xff0c;需要从各个不同的角度去权衡&#xff0c;主要包括实践背景、技术选型、架构设计&#xff0c;我们基于这三个方面进行了架构实践&#xff0c;下面分别从这三个方面进行详细分析讨论&#xff1a;实践背景该数据服务平台架构设计之初…

C语言*运算符和运算符

取址运算符&用来取得其操作数的地址。如果操作数 x 的类型为 T&#xff0c;则表达式 &x 的类型是 T 类型指针&#xff08;指向 T 的指针&#xff09;。取址运算符的操作数必须是在内存中可寻址到的地址。换句话说&#xff0c;该运算符只能用于函数或对象&#xff08;例…

css 竖行进度图_前端学习--汇集了大量 CSS 的使用和学习的示例代码

CSS-Inspiration这里可以让你寻找到使用或者是学习 CSS 的灵感&#xff0c;以分类的形式&#xff0c;展示不同 CSS 属性或者不同的课题使用 CSS 来解决的各种方法。目前已有上百种的CSS 实现示例&#xff0c;代码可以拿 来即用LayoutCSS实现瀑布流布局(display: flex)CSS实现瀑…

socket io 不使用redis_Redis这么快,线程模型竟然是单线程

Redis的线程模型记住一句话&#xff1a;单进程单线程&#xff0c;IO多路复用。单线程还这么快&#xff1f;是的&#xff0c;你没有看错&#xff0c;Redis是单线程处理的。这是因为Redis的设计者认为Redis是基于内存的操作&#xff0c;瓶颈在内存或者网络带宽而不是CPU。这样&am…

服务器系统装内存条,hp服务器怎么安装内存条 hp服务器内存推荐【图文】

服务器虚拟化增加了在每台惠普服务器上运行工作负载的数量&#xff0c;但是越来越多的计算需求则要求IT人员配备更好的HP服务器配件。因此需要对于HP服务器内存市场行情有一定的了解&#xff0c;而选择合适的HP服务器内存却是一件非常难的事情&#xff0c;今天就跟小编一起来看…