Подтвердить что ты не робот

Прерывистая ошибка ERR_SSL_PROTOCOL_ERROR для запроса кросс-домена

Пользователи моего веб-сайта видят прерывистый ERR_SSL_PROTOCOL_ERROR при выполнении кросс-доменных запросов на api.flickr.com

Посредством прерывистого я имею в виду, что я видел, как это произошло 4 раза из ~ 1200 запросов к api вчера.

Failed to load resource: net::ERR_SSL_PROTOCOL_ERROR     https://api.flickr.com/services/rest/?method=flickr.photos.getInfo&api_key=.....

Мой сайт и приложение AngularJS работают в Google App Engine и доступны на HTTPS.

sslchecker показывает, что сертификат моего сайта и цепочка сертификатов установлены правильно. Ну, я думаю, это выглядит нормально!

sslchecker для api.flickr.com показывает, что ROOT 1 цепочки сертификатов отсутствует. Это проблема? Есть ли способ обойти это для меня?

Любые другие идеи? Возможно, проблема в том, что наши сертификаты являются проблемами разных органов власти?

Изменить - Некоторая другая, возможно, соответствующая информация, полученная из Google Analytics

  • Увидели это для разных ОС - Android, iOS, Windows
  • Различные браузеры - Android, Chrome, Safari.
  • Различные сетевые домены
4b9b3361

Ответ 1

Постоянное Ошибки протокола SSL могут быть вызваны такими проблемами, как

  • сервер назначения ожидает другого протокола (например, SSLv1, SSLv2, SSLv3)

  • нарушение политики безопасности (например, некоторые серверы не выполняют запросы сертификата, сделанные клиентом)

  • Фильтрация/шифрование импеданса межсетевого экрана


Прерывистые Ошибки протокола SSL очень трудно диагностировать. Они могут быть результатом истекшего сеанса, истекшего ключа, икоты подключения, потерянных пакетов и т.д.

Хуже того, они могут быть вызваны проблемами на стороне сервера, такими как синхронизация по дате и времени, полный пул подключения к серверу и т.д.

Лучшей практикой является повторная отправка запроса:, потому что такие проблемы часто являются временным сбоем и обычно достигают второй попытки.


Flickr переключил свой API на SSL-только 27 июня 2014 года (чуть меньше года). С тех пор их Форум взорвал проблемы, связанные с SSL.

В последние несколько месяцев многие пользователи сообщили (проверить поток) sporadic Ошибки протокола SSL.

Эти Ошибки протокола отображаются во всех типах устройств (ноутбуки, настольные компьютеры, мобильные устройства, Linux, Windows и т.д.), и, как правило, немедленная повторная попытка выполнена успешно. Общность и крайне редкий характер этих проблем указывает на то, что на стороне хозяина есть какая-то проблема, совершенно не связанная ни с чем на клиенте.

Поскольку повторная или вторая попытка обычно успешна, я предлагаю захватить ошибку и сделать еще 1-3 попытки:

var promise = flickrService.get(...);

promise.success(function (data, status, headers, config) {
        // Big Party
    })
    .error(function(data, status, headers, config) {
        if (status == 107) {
            promise = flickrService.get(...);

            promise.success(function (data, status, headers, config) {
                    // Big Party
                })
                .error(function (data, status, headers, config) {
                    AlertService.RaiseErrorAlert("Flickr temporarily unavailable.Please try again later");
                });
        }
    });

Если вы продолжаете получать "Ошибка протокола" , сообщите пользователю, что Flickr временно недоступен и повторите попытку позже.

Ответ 2

Это может быть ответ, но я предполагаю, что это, вероятно, не проблема с клиентом, поэтому я предлагаю вам обновить ваш сервер api этой строкой, добавленной в заголовок:

Access-Control-Allow-Origin: https://api.flickr.com/*

Это должно устранить проблемы, с которыми сталкиваются некоторые ваши пользователи.