Как обработать ERR_INSECURE_RESPONSE в расширении Google Chrome

Я делаю простой запрос GET на мой URL, и я получаю сообщение об ошибке "ERR_INSECURE_RESPONSE". Это нормально, так как сертификат самоподписан. Но у меня есть два вопроса по этому поводу:

  1. Есть ли способ преодолеть это в расширении? Как установить флаг в запросе или что-то подобное? (вероятно, вряд ли)
  2. Есть ли способ просто обработать эту ошибку (уведомить пользователя)? Я проверил все поля XMLHttpRequest и не вижу ничего, что может указывать на эту ошибку. Поле состояния имеет значение 0 (ноль).

Есть идеи?

1 ответ

Решение
  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/.

Другие вопросы по тегам