etalab / transport-site

Rendre disponible, valoriser et améliorer les données transports
https://transport.data.gouv.fr
190 stars 29 forks source link

Pas d'accès au flux GTFS-RT de Dijon #1755

Closed Miryad3108 closed 3 years ago

Miryad3108 commented 3 years ago

Le producteur de données nous a contacté parce qu'il ne comprend pas pourquoi on affiche une erreur lorsqu'on veut accéder à leur GTFS-RT : https://transport.data.gouv.fr/datasets/gtfs-diviamobilites/ De leur côté, cela fonctionne bien

On fait proxy sur ce flux

thbar commented 3 years ago

L'url GTFS-RT du flux pointée par le dataset ci-dessus est:

https://proxy.transport.data.gouv.fr/resource/divia-dijon-gtfs-rt-trip-update

thbar commented 3 years ago

Je reproduis bien le souci, sur les 2 flux divia dijon:

curl -i https://proxy.transport.data.gouv.fr/resource/divia-dijon-gtfs-rt-trip-update
HTTP/1.1 502 Bad Gateway

curl -i https://proxy.transport.data.gouv.fr/resource/divia-dijon-gtfs-rt-vehicle-position
HTTP/1.1 502 Bad Gateway
thbar commented 3 years ago

En local, en copiant la partie de configuration pertinente dans config/proxy-config.yml, en ajoutant 127.0.0.1 proxy.localhost dans /etc/hosts, et en démarrant avec mix phx.server, je reproduis le souci.

thbar commented 3 years ago

J'ai vérifié via le backoffice en cliquant vite fait sur chaque lien le fonctionnement de tous les flux.

Seuls ces deux flux et les deux flux "temp" sont en 500, le reste fonctionne, donc ce n'est pas un problème plus général.

Je vais enquêter précisément sur ces deux cas à présent.

thbar commented 3 years ago

L'erreur en local est la suivante:

TLS :client: In state :wait_cert_cr at ssl_handshake.erl:1882 generated CLIENT ALERT: Fatal - Certificate Expired

Je vais vérifier l'état général SSL.

thbar commented 3 years ago

Après enquête, le serveur sur lequel on fait proxy présente un souci de configuration SSL. Il contient d'anciens roots / certificats additionnels qui sont expirés:

❯ openssl s_client -servername REDACTED -connect REDACTED:443 2>&1 | grep expired -C1
depth=1 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify error:num=10:certificate has expired
notAfter=May 30 10:48:38 2020 GMT
--
--
depth=1 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify error:num=10:certificate has expired
notAfter=May 30 10:48:38 2020 GMT
--
--
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify error:num=10:certificate has expired
notAfter=May 30 10:48:38 2020 GMT

J'ai répondu par email, en indiquant qu'il serait souhaitable de corriger la configuration serveur. Il n'est pas sûr qu'un contournement soit d'ailleurs possible en restant avec cette librairie HTTP (Finch/Mint).

thbar commented 3 years ago

Le fournisseur nous a répondu et les certificats ont été corrigés.

On a à présent:

curl -i https://proxy.transport.data.gouv.fr/resource/divia-dijon-gtfs-rt-trip-update
HTTP/1.1 200 OK

curl -i https://proxy.transport.data.gouv.fr/resource/divia-dijon-gtfs-rt-vehicle-position
HTTP/1.1 200 OK

Par ailleurs sur https://transport.data.gouv.fr/datasets/gtfs-diviamobilites/#dataset-resources la ressource GTFS-RT n'est plus marqué indisponible:

CleanShot 2021-08-31 at 12 02 19@2x

Tout est OK, je clôture et je préviens.