chrome 浏览器在采用 wss 通信时,默认不能跳过服务器验证环节,而是需要通过配置 chrome 参数来禁用这个验证。然而这会禁用 chrome 对所有 ssl 通信时的验证操作。 我想问的是,有什么办法在 javascript 中 new WebSocket 时,能通过编程方式或其它不需要认为干涉的方式来禁用当前 wss 链接在 ssl 握手过程中的服务器验证环节?
1
mz02005 OP 而且设置中只能禁用 localhost 访问下 ssl 验证。
|
2
noe132 2018-05-16 09:27:13 +08:00 via Android
这明显不行。要是 js 能禁用,浏览器的安全性还能保障?
你不想用 ssl 可以用 ws 就像你不想用 https 可以用 http |
3
momocraft 2018-05-16 09:30:43 +08:00
我比浏览器聪明系列?
|
4
flowfire 2018-05-16 09:50:36 +08:00 via iPhone
黑人问号脸。。。
不想要验证就换 ws 不就行了。。 强行用 wss 还不让浏览器验证。。。 或者你自己签发一个跟证书丢到 Chrome 信任的跟证书里 |
5
yyfearth 2018-05-16 09:56:58 +08:00
解决办法很简单啊 为什么要跳过验证 直接安装证书就好了
不想验证用 ws 就好了啊 为啥还要用 wss |
6
mz02005 OP @flowfire 主要是想保证链路不被窃听。谁都可以上来和我对话,但是对话内容不能被其它人看见。另外,关于签发证书丢到 chrome 里这种操作,这边客户是不想增加额外更多的操作,他们是大爷。
另外公司也不想出钱搞认证。那种便宜不靠谱的认证随时可能被浏览器毙了,也不想去折腾了。 遇到这种让跑不给草的情况,我也很为难。 还有服务器同时面对局域网用户,无法认证,但是又要求加密通道。哎…… |
7
chinvo 2018-05-16 11:01:55 +08:00 via iPhone
不验证证书的 tls 和明文有什么区别?
老老实实买证书,或者 LE 签一个 |
8
flowfire 2018-05-16 11:07:07 +08:00
|
9
woodensail 2018-05-16 11:56:58 +08:00
老老实实签发证书是最稳妥的防窃听方式。
没有证书体系支持的 ssl 只是空中楼阁,根本防不住中间人。 具体而言,你可以自己实现一个仿 ssl 同时把公钥写死在页面里,但是攻击者可以通过替换该公钥的方式实现中间人攻击。当然,你可以考虑用 https 信道来传递 ssl 公钥,略微安全一些,但是受到 xss 联合攻击的时候还是很危险。 |
11
zhjits 2018-05-17 09:18:39 +08:00 via iPhone
不认证怎么实现防窃听?
|
12
msg7086 2018-05-26 00:30:10 +08:00
> 保证客户在看数据时不被其它人看到它正在看的就行了。
这恰好就是为什么 wss 需要验证。不验证证书的话直接中间人攻击不就能被其他人看到了? |