web-dev-qa-db-fra.com

Erreur ERR_SSL_PROTOCOL_ERROR intermittente pour la demande interdomaine

Les utilisateurs de mon site Web voient de façon intermittente ERR_SSL_PROTOCOL_ERROR lors de la demande de plusieurs domaines à api.flickr.com

Par intermittent, je veux dire que j'ai vu cela se produire 4 fois sur ~ 1200 demandes à l'api hier.

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

Mon site et l'application AngularJS fonctionnent sur Google App Engine et sont exclusivement disponibles sur HTTPS.

sslchecker montre que le certificat et la chaîne de certificats de mon site est installé correctement. Eh bien, je pense que ça a l'air ok!

sslchecker pour api.flickr.com montre que ROOT 1 de la chaîne de certificats est manquant. Est-ce là le problème? Y a-t-il un moyen de contourner cela pour moi?

D'autres idées? Le problème est-il que nos certificats sont émis par différentes autorités peut-être?

Modifier - Quelques autres informations éventuellement pertinentes tirées de Google Analytics

  • Je l'ai vu se produire pour différents systèmes d'exploitation - Android, iOS, Windows
  • Différents navigateurs - Android, Chrome, Safari
  • Différents domaines de réseau
21
Harry Lime

Persistant Erreurs de protocole SSL peut être causé par des problèmes tels que

  • le serveur de destination attend un protocole différent (par exemple SSLv1, SSLv2, SSLv3)

  • une violation d'une politique de sécurité (par exemple, certains serveurs n'honorent pas les demandes de certificats faites par le client)

  • Filtrage/filtrage d'impédance du pare-feu


Intermittent Erreurs de protocole SSL sont très difficiles à diagnostiquer. Ils peuvent être le résultat d'une session expirée, d'une clé expirée, d'un hoquet de connectivité, de paquets perdus, etc.

Pire encore, ils peuvent être causés par des problèmes côté serveur comme la synchronisation date-heure, le pool de connexion au serveur est plein, etc.

La meilleure pratique consiste à renvoyer la demande: car ces problèmes sont souvent un problème temporaire et réussissent généralement à la deuxième tentative.


Flickr a changé son API en SSL uniquement sur le 27 juin 2014 ( un peu moins d'un an). Leur forum a explosé depuis avec des problèmes liés à SSL.

Au cours des derniers mois, de nombreux utilisateurs ont signalé (vérifier le fil) sporadique Erreurs de protocole SSL.

Ces Erreurs de protocole apparaissent sur tous les types d'appareils ( ordinateurs portables, ordinateurs de bureau, mobiles, Linux, Windows, etc.) et généralement une nouvelle tentative immédiate réussit. La similitude et la nature très peu fréquente de ces problèmes indiquent qu'il y a un problème du côté de l'hôte complètement sans rapport avec quoi que ce soit sur le client.

Comme une nouvelle tentative ou une deuxième tentative réussit généralement, je suggère de piéger l'erreur et de faire 1 à 3 tentatives supplémentaires:

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");
                });
        }
    });

Si vous continuez à obtenir une "erreur de protocole" , informez l'utilisateur que Flickr est temporairement indisponible et réessayez plus tard.

16
Dave Alperovich

Cela pourrait être la réponse, mais je suppose que ce n'est probablement pas un problème client, je vous suggère donc de mettre à jour le serveur de votre API avec cette ligne ajoutée dans l'en-tête:

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

Cela devrait résoudre les problèmes rencontrés par certains de vos utilisateurs.

1
Mekap