首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在XmlHttpRequest中忽略自签名证书

如何在XmlHttpRequest中忽略自签名证书
EN

Stack Overflow用户
提问于 2018-02-08 12:01:30
回答 2查看 9.1K关注 0票数 9

我正在做一个用javascript编写的项目。我可以看到,对于请求,已经创建了XMLHttpRequest对象。

它对于"http“请求很好,但是对于"https”却失败了。由于我是在开发环境中调试它,所以我只想知道XmlHttpRequest 如何在对象?中忽略自签名证书。

在搜索的时候我找到了

代码语言:javascript
复制
httpreq = new ActiveXObject("Msxml2.ServerXMLHTTP.3.0");
httpreq.setOption(2, 13056);

但答案是不适用于现代浏览器,如微软边缘,合唱.

我还找到了,它明确指出setOption()可以用于忽略ssl证书。

我在代码中看到的一个不同之处是,我使用以下方法创建httpreq:

代码语言:javascript
复制
httpreq = new xmlhttprequest();//This is for chorme and Firefox

那么,我是否可以忽略XmlHttpRequest中的自签名证书呢?

EN

回答 2

Stack Overflow用户

发布于 2020-06-21 09:24:05

坏消息:

没有办法用XmlHttpRequest 直接来实现这一点。这是合乎逻辑的,因为SSL需要在网络上是安全的,因为任何禁用它的能力都会带来重大的安全风险。

setOption不是XmlHttpRequest下的标准/现代方法,这一点也是对的。

好消息:

可以做的是通过可信/正确配置的代理来实现这一点,下面的示例作为一个节点/快速服务器配置为允许不安全的连接:

代码语言:javascript
复制
$router.get("/", (oRequest, oResponse) => {
    $nonStrictSSLRequest = require('request').defaults({strictSSL: false});
    
    $nonStrictSSLRequest(
        { url: "https://192.168.1.2:8080/api/apiVer" },
        function (err, oAPIResponse, sBody) {
            oResponse.status(200).json(JSON.parse(sBody));
        }
    );
});

为了支持RainMachine的(仅限于愚蠢的HTTPS )的自签名证书,我不得不这么做。

票数 3
EN

Stack Overflow用户

发布于 2021-05-01 10:13:01

如果您正在开发基于铬的浏览器,则可以使用标志--ignore-certificate-errors。始终通过也--user-data-dir,以防止影响您的主要安全配置文件。只将其作为最后手段使用,并且只在本地开发期间使用,因为这完全忽略了所有SSL错误。--ignore-certificate-errors是无文件记录的标志,可以随时从铬中去除。

Chromium:

代码语言:javascript
复制
chromium-browser --ignore-certificate-errors --user-data-dir=~/chromium_dev_session

Chrome:

代码语言:javascript
复制
"C:\Program Files\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors --user-data-dir="c:/chrome_dev_session"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48685016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档