web-dev-qa-db-ja.com

GoogleでERR_INSECURE_RESPONSEを処理する方法Chrome拡張機能

URLに対して単純なGETリクエストを実行すると、「ERR_INSECURE_RESPONSE」というエラーが表示されます。証明書は自己署名されているため、これは問題ありません。しかし、私はそれに関して2つの質問があります。

  1. これを拡張して克服する方法はありますか?リクエストにフラグを設定するのが好きですか? (おそらくない)
  2. このエラーを処理するだけの方法はありますか(ユーザーに通知するため)?すべてのXMLHttpRequestフィールドをチェックしましたが、このエラーを示すものは何も表示されません。ステータスフィールドの値は0(ゼロ)です。

何か案は?

11
Krzysztof Wolny
  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フラグを付けて開始します。これは、同じブラウジングセッションのすべてのWebサイトに影響するため、コマンドライン引数に--user-data-dir=/tmp/temporaryprofiledirectoryを追加することにより、この目的のための別のプロファイルディレクトリ。

そもそもエラーを回避するもう1つの方法は、有効なSSL証明書を取得することです。非営利目的の場合、 https://www.startssl.com無料のSSL証明書 を取得できます。

9
Rob W