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

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

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

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

  • 有任何想法吗?

    最佳答案

  • 不,扩展 API 不提供任何修改 SSL 设置或行为的方法。
  • 您可以使用 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();
    

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

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

    关于google-chrome - 如何在 Google Chrome 扩展程序中处理 ERR_INSECURE_RESPONSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24498821/

    相关文章:

    amazon-web-services - AWS EC2 websocket 通过 https ERR_SSL_VERSION_OR_CIPHER_MISMATCH

    android - 如何从代理后面的 Android 应用程序通过 HTTPS 访问服务?

    javascript - 使用 javascript 在 Chrome/Mac 上强制 "overscrolling"

    javascript - 尝试从 Chrome 扩展中获取 Cookie 时出错

    javascript - contextMenu 在 Chrome 打包应用程序中不起作用

    google-chrome - chrome 扩展在新选项卡中打开链接 - 没有错误,但点击时什么也不做

    javascript - 如何禁用浏览器默认密码弹出窗口?

    javascript - 从内容脚本访问后台脚本对象

    javascript - jQuery 无法在 chrome 扩展的 background.js 中工作

    php - 如何在不使用 cPanel 中的 .htaccess 文件的情况下强制使用 HTTPS