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

时间:2014-06-30 20:56:55

标签: google-chrome google-chrome-extension https ssl-certificate

我正在对我的网址执行简单的GET请求,我收到错误" ERR_INSECURE_RESPONSE"。这很好,因为证书是自签名的。但我有两个问题:

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

1 个答案:

答案 0 :(得分:9)

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

    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();
    

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

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