问题 如何在Google Chrome扩展程序中处理ERR_INSECURE_RESPONSE


我正在对我的URL做简单的GET请求,我收到错误“ERR_INSECURE_RESPONSE”。这很好,因为证书是自签名的。但我有两个问题:

  1. 有没有办法在扩展中克服这个问题?就像在请求中设置一个标志或者像那样? (可能不太可能)
  2. 有没有办法处理这个错误(通知用户)?我检查了所有XMLHttpRequest字段,看不到任何可以指示此错误的内容。状态字段的值为0(零)。

有任何想法吗?


1632
2018-06-30 20:56


起源

答案 这里 - feetwet


答案:


  1. 不,扩展API不提供任何修改SSL设置或行为的方法。
  2. 你可以使用 chrome.webRequest.onErrorOccurred 事件以获得网络错误的通知。该 error 属性将包含网络错误代码。

例如:

chrome.webRequest.onErrorOccurred.addListener(function(details) {
    if (details.error == 'net::ERR_INSECURE_RESPONSE') {
        console.log('Insecure request detected', details);
    }
}, {
    urls: ['*://*/*'],
    types: ['xmlhttprequest']
});
var x = new XMLHttpRequest;
x.open('get','https://example.com');
x.send();

如果仅用于测试,只需启动Chrome即可 --ignore-certificate-errors 标志以允许使用自签名证书。这会影响同一浏览会话中的所有网站,因此我建议通过附加为此目的使用单独的配置文件目录 --user-data-dir=/tmp/temporaryprofiledirectory 到命令行参数。

首先避免错误的另一种方法是获得有效的SSL证书。出于非商业目的,您可以获得 免费的SSL证书 在 https://www.startssl.com


9
2018-06-30 21:19



随着StartCom(负责StartSSL)和WoSign(负责StartCom)受到审查和监督 基本上无法签署新的证书,主要的,可能只是免费的替代品 我们加密吧。 - Xan
我使用Let的加密,但我仍然得到net :: ERR_INSECURE_RESPONSE。我在验证后实现了oauth2和一个https重定向到另一个,我在控制台中得到了这个错误。但是,在地址栏中,它表示安全的https,并且没有任何错误。 - steviesama