我正在做一个用javascript编写的项目。我可以看到,对于请求,已经创建了XMLHttpRequest对象。
它对于"http“请求很好,但是对于"https”却失败了。由于我是在开发环境中调试它,所以我只想知道XmlHttpRequest 如何在对象?中忽略自签名证书。
在搜索的时候我找到了这,
httpreq = new ActiveXObject("Msxml2.ServerXMLHTTP.3.0");
httpreq.setOption(2, 13056);但答案是不适用于现代浏览器,如微软边缘,合唱.
我还找到了这,它明确指出setOption()可以用于忽略ssl证书。
我在代码中看到的一个不同之处是,我使用以下方法创建httpreq:
httpreq = new xmlhttprequest();//This is for chorme and Firefox那么,我是否可以忽略XmlHttpRequest中的自签名证书呢?
发布于 2020-06-21 09:24:05
坏消息:
没有办法用XmlHttpRequest 直接来实现这一点。这是合乎逻辑的,因为SSL需要在网络上是安全的,因为任何禁用它的能力都会带来重大的安全风险。
setOption不是XmlHttpRequest下的标准/现代方法,这一点也是对的。
好消息:
可以做的是通过可信/正确配置的代理来实现这一点,下面的示例作为一个节点/快速服务器配置为允许不安全的连接:
$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 )的自签名证书,我不得不这么做。
发布于 2021-05-01 10:13:01
如果您正在开发基于铬的浏览器,则可以使用标志--ignore-certificate-errors。始终通过也--user-data-dir,以防止影响您的主要安全配置文件。只将其作为最后手段使用,并且只在本地开发期间使用,因为这完全忽略了所有SSL错误。--ignore-certificate-errors是无文件记录的标志,可以随时从铬中去除。
Chromium:
chromium-browser --ignore-certificate-errors --user-data-dir=~/chromium_dev_sessionChrome:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors --user-data-dir="c:/chrome_dev_session"

https://stackoverflow.com/questions/48685016
复制相似问题