热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UncaughtSecurityError:无法构造'WebSocket':可能无法从通过HTTPS加载的页面启动不安全的WebSocket连接

如何解决《UncaughtSecurityError:无法构造'WebSocket':可能无法从通过HTTPS加载的页面启动不安全的WebSocket连接》经验,为你挑选了1个好方法。

我正在使用GlassFish Server 4.1/Java EE 7.在我的web.xml文件中,我提到了以下安全约束.


    UserConstraint
    
        Provide a Name
        
        /admin_side/*
        GET
        POST
    
    
        
        ROLE_ADMIN
    
    
        
        CONFIDENTIAL
    

其他当局也是如此.

由于transport-guarantee设置为CONFIDENTIAL,与指定的URL模式匹配的网页/admin_side/*通过安全通道(HTTPS)运行.

使用WebSockets时如下(Javascript),

var ws = new WebSocket("ws://localhost:8181/Context/Push");

它无法建立初始握手.浏览器在浏览器控制台上显示以下警告.

[blocked] The page at 'https://localhost:8181/Context/admin_side/Category' was loaded over HTTPS, but ran insecure content from 'ws://localhost:8080/Context/Push': 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.

完全删除web.xml中的部分后,将运行网页HTTP.在那之后,改变,

var ws = new WebSocket("ws://localhost:8181/Context/Push");

var ws = new WebSocket("ws://localhost:8080/Context/Push");

工作良好.

如何使WebSockets在安全通道上工作?



1> vtortola..:

试试wss://,这表明你想要一个安全的websocket连接.浏览器将阻止您从安全页面创建不安全的连接,因为它了解自您请求页面以来https://,存在传输安全性要求.

如果您的WebSocket服务器与您的Web服务器一起运行,它可能会使用相同的安全证书,您无需执行任何操作.如果它不起作用,请检查WebSocket服务器文档,了解如何添加证书和启用wss://.


推荐阅读
author-avatar
江游弈一个
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有