问题 Javascript XMLHttpRequest:忽略无效的SSL证书


所以我一直无法从与https接口的设备中获取信息,因为它的安全证书无效。我知道设备是可信任的,我无法访问服务器端,所以我无法更改它。我想知道是否有任何方法可以在Javascript中设置XMLHttpRequest对象来忽略无效的SSL证书,并且无论如何都只是获取信息。因为它现在似乎只是拒绝证书并停止。谢谢。


10657
2017-12-20 14:53


起源

如果有人在尝试解决节点中的相同问题时(而不是在浏览器中)发现此问题,请跳过此处寻找解决方案: stackoverflow.com/questions/10888610/... - Joe


答案:


好吧,我之前找到了这个解决方案,但它没有用,这是因为我仍在使用实际的XMLHttpRequest。使用此语句创建时:

httpreq = new ActiveXObject("Msxml2.ServerXMLHTTP.3.0");

有一个名为setOption的方法可以打开使用:

httpreq.setOption(2, 13056);

使用这些参数,请求现在忽略无效证书并始终获取信息。如果我理解正确,这将不适用于任何试图运行脚本的非Microsoft技术,但这对我的项目范围是可行的。


6
2017-12-20 15:18





不,没有。 XMLHTTPRequest不允许您覆盖它。能够覆盖SSL安全性可能在您的情况下有意义,但如果您考虑它,一般来说这将是一个坏主意。你永远不想允许互联网上的任意javascript代码连接到js主机(浏览器)知道可能存在MITM问题的安全服务。


4
2017-12-20 15:02



是的,我知道它在一般情况下没有意义,但在大多数情况下通常会针对特定情况。我其实觉得我现在正在做点什么。 - user535617


我知道该设备值得信赖

是的,但你不知道 你是否真的连接到设备。

 是证书的目的。这就是它必须有效的原因。


4
2017-12-21 09:31



实际上我知道我是否真的与设备连接......我其实是。我的印象是证书有一个命名错误,因为这似乎是唯一的问题。 - user535617
@ user535617不,你只认为你直接连接,直接成为关键词。中间可能有一个人只是在收集所有信息时转发您和终端节点之间的所有请求。这对你来说是完全透明的。即你甚至不知道它在那里。 - chacham15