Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erreur accès à TaxHub #261

Open
MoulinZ opened this issue Jul 15, 2024 · 28 comments
Open

Erreur accès à TaxHub #261

MoulinZ opened this issue Jul 15, 2024 · 28 comments
Labels
bug Something isn't working

Comments

@MoulinZ
Copy link

MoulinZ commented Jul 15, 2024

Version de l'application

Version d'Occtax-mobile affectée par le bug : 2.7.0
Version de GeoNature utilisée : 2.14.2

Terminal et Version Android

Marque et modèle du terminal : OnePlus 7T
Version d'Android : 12

Description du bug et comportement attendu

Après le passage à OccTax 2.7.0 (depuis 2.6.1), j'ai une erreur dans la synchronisation des données de TaxHub apparemment, d'après les logs.
Ce qui m'étonne c'est que l'accès à la route api/taxref/regnewithgroupe2 pour récupérer les rangs ne semble pas poser de problème, alors que la récupération de l'ensemble des taxons, elle, bloque.
C'est probablement un blocage mobile vu le message :
CLEARTEXT communication not permitted by network security policy

Mais je ne trouve pas comment corriger tout ça... merci pour votre aide !

Logs

15:48:19.214 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] starting local data synchronization...
15:48:19.315 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] starting local data synchronization from 'https://geonature.mondomaine.fr' (with additional data: true)...
15:48:19.319 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize dataset...
15:48:19.321 INFO: [fr.geonature.datasync.api.ClientKt] --> POST https://geonature.mondomaine.fr/api/meta/datasets (19-byte body)
15:48:20.664 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonature.mondomaine.fr/api/meta/datasets (1340ms, unknown-length body)
15:48:20.751 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] dataset to update: 86
15:48:20.755 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize users...
15:48:20.757 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonature.mondomaine.fr/api/users/menu/1
15:48:20.808 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonature.mondomaine.fr/api/users/menu/1 (49ms, unknown-length body)
15:48:20.822 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] users to update: 174
15:48:20.826 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize taxonomy ranks...
15:48:20.828 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://taxhub.mondomaine.fr/api/taxref/regnewithgroupe2
15:48:25.739 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://taxhub.mondomaine.fr/api/taxref/regnewithgroupe2 (4911ms, unknown-length body)
15:48:25.752 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxonomy ranks to update: 41
15:48:25.760 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize nomenclature types...
15:48:25.763 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonature.mondomaine.fr/api/nomenclatures/nomenclatures/taxonomy
15:48:26.206 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonature.mondomaine.fr/api/nomenclatures/nomenclatures/taxonomy (441ms, unknown-length body)
15:48:26.278 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] nomenclature types to update: 50
15:48:26.301 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] nomenclature to update: 579
15:48:26.303 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize nomenclature default values...
15:48:26.304 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonature.mondomaine.fr/api/occtax/defaultNomenclatures
15:48:26.341 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonature.mondomaine.fr/api/occtax/defaultNomenclatures (36ms, unknown-length body)
15:48:26.358 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] nomenclature default values to update: 17
15:48:26.432 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://taxhub.mondomaine.fr/api/taxref/version
15:48:26.488 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://taxhub.mondomaine.fr/api/taxref/version (55ms, unknown-length body)
15:48:26.503 INFO: [fr.geonature.datasync.sync.repository.SynchronizeTaxaRepositoryImpl] taxa last synchronization date from remote: 2024-02-13T11:27:50Z
15:48:26.504 INFO: [fr.geonature.datasync.sync.repository.SynchronizeTaxaRepositoryImpl] synchronize taxa...
15:48:26.506 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://taxhub.mondomaine.fr/api/taxref?orderby=cd_nom&limit=10000&page=1
15:48:26.613 INFO: [fr.geonature.datasync.api.ClientKt] <-- HTTP FAILED: java.net.UnknownServiceException: CLEARTEXT communication to taxhub.mondomaine.fr not permitted by network security policy
15:48:26.627 WARN: [fr.geonature.datasync.sync.repository.SynchronizeTaxaRepositoryImpl] taxa synchronization finished with errors
15:48:27.134 WARN: [fr.geonature.datasync.sync.worker.DataSyncWorker] Synchronisation des taxons terminée avec des erreurs
15:48:27.136 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] local data synchronization finished with failed tasks in 7.841s
@MoulinZ MoulinZ added the bug Something isn't working label Jul 15, 2024
@camillemonchicourt
Copy link
Member

Dans les logs que tu as partagé, c'est toi qui a remplacé par "mondomaine.fr" ?

@MoulinZ
Copy link
Author

MoulinZ commented Jul 15, 2024

oui oui, on sait jamais ^^

@MoulinZ
Copy link
Author

MoulinZ commented Jul 16, 2024

J'ai testé sur un Google Pixel Android 14 et j'ai le même problème...

@DonovanMaillard
Copy link
Collaborator

Bonjour,

Même souci de mon coté, je prévoyais d'ouvrir un ticket ce jour. Je vais creuser un peu mais je me demande si c'est pas un probleme avec les sous-domaines, j'ai l'impression que sur l'instance de démo avec un /taxhub ca fonctionnait sans souci. Je vérifie et fais un retour, mais effectivement je suis bloqué pour le déploiement de la 2.7 sur 2 de mes instances, faute de tests des RC en amont sur mes instances (je plaide coupable !)

@MoulinZ
Copy link
Author

MoulinZ commented Jul 16, 2024

Est-ce qu'on peut télécharger une dernière version sans avoir fait les changements dans la table t_mobile_app pour la tester ?
Parce que là du coup j'ai tenté de revenir en arrière mais ça ne downgrade pas l'app sur mobile.

@sgrimault
Copy link
Collaborator

Bonjour,
A priori, l'URL ne semble pas accessible, comme par exemple https://geonature.mondomaine.fr/api/nomenclatures/nomenclatures/taxonomy.
Deuxième point, bien vérifier si geonature.mondomaine.fr utilise un certificat SSL en bonne et due forme.

@DonovanMaillard
Copy link
Collaborator

@sgrimault de mon coté j'ai l'impression que mes API sont bonnes, mais je ne sais pas sur quelle API il bloque.

La dernière route interrogée avant le fail 15:48:26.506 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://taxhub.mondomaine.fr/api/taxref?orderby=cd_nom&limit=10000&page=1

Est bien accessible dans mon cas.

@MoulinZ : la table t_mobile_appsne sert qu'a déclencher la mise à jour manuellement, elle ne gere pas les downgrade. Et il vaut mieux tester sur un mobile et s'assurer que tout est OK en prod avant de déclencher les mises à jour sur tous les terminaux en modifiant cette table

@MoulinZ
Copy link
Author

MoulinZ commented Jul 17, 2024

je précise que la route en question https://taxhub.mondomaine.fr/api/taxref?orderby=cd_nom&limit=10000&page=1 est bien accessible dans mon cas également, elle ne fail que sur le mobile (et sur les différents terminaux c'est bien cette route là qui fail).

Pour ce qui est du certificat, il est généré avec certbot et n'a jamais posé de problème. Je l'ai regénéré pour être sûr, mais ça ne change rien.

@sgrimault
Copy link
Collaborator

Sans doute pas accessible en dehors de votre infrastructure, car de mon coté je ne peux pas y accéder :
image

@camillemonchicourt
Copy link
Member

Donnez les bonnes URL car sinon on ne peut rien tester.

Mais d'après les différents retours de tests, je pense que ces instances sont OK et qu'il y a bien un truc qui coince au niveau de la 2.7.
Car si j'ai bien compris ces instances fonctionnaient bien avec la 2.6 et sont bien accessibles de l'extérieur.

@MoulinZ
Copy link
Author

MoulinZ commented Jul 17, 2024

Oui c'est plus simple, voici la bonne URL qui fonctionne : https://taxhub-saisie.reserves-naturelles.org/api/taxref?orderby=cd_nom&limit=10000&page=1

@sgrimault
Copy link
Collaborator

L'erreur remontée est très clair :

15:48:26.506 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://taxhub.mondomaine.fr/api/taxref?orderby=cd_nom&limit=10000&page=1
15:48:26.613 INFO: [fr.geonature.datasync.api.ClientKt] <-- HTTP FAILED: java.net.UnknownServiceException: CLEARTEXT communication to taxhub.mondomaine.fr not permitted by network security policy

Je pense qu'il doit y avoir une redirection HTTPS vers HTTP quelque part et en version "release", l'application refuse toute communication HTTP non chiffrée.

Je n'avais pas tilté que vous avez caché la vraie URL... 😅

@sgrimault
Copy link
Collaborator

sgrimault commented Jul 17, 2024

Test rapide via cURL :

curl -k -v https://taxhub-saisie.reserves-naturelles.org/api/taxref?orderby=cd_nom&limit=10000&page=1
Trying 51.159.198.138:443...
Connected to taxhub-saisie.reserves-naturelles.org (51.159.198.138) port 443
ALPN: curl offers http/1.1
TLSv1.3 (OUT), TLS handshake, Client hello (1):
TLSv1.3 (IN), TLS handshake, Server hello (2):
TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
TLSv1.3 (IN), TLS handshake, Certificate (11):
TLSv1.3 (IN), TLS handshake, CERT verify (15):
TLSv1.3 (IN), TLS handshake, Finished (20):
TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
TLSv1.3 (OUT), TLS handshake, Finished (20):
SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
ALPN: server accepted http/1.1
Server certificate:
subject: CN=tax...
start date: Jul ...
expire date: Oct...
issuer: C=US; O=...; CN=R10
SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
using HTTP/1.1
GET /api/taxref?orderby=cd_nom HTTP/1.1
Host: taxhub-saisie.reserves-naturelles.org
User-Agent: curl/8.4.0
Accept: */*
>
TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
old SSL session ID is stale, removing
< HTTP/1.1 308 PERMANENT REDIRECT
< Date: Wed, 17 Jul 2024 09:35:44 GMT
< Server: gunicorn
< Content-Type: text/html; charset=utf-8
< Content-Length: 329
< Location: http://taxhub-saisie.reserves-naturelles.org/api/taxref/?orderby=cd_nom
< Vary: Cookie
<
<!doctype html>
<html lang=en>
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to the target URL: <a href="http://taxhub-saisie.reserves-naturelles.org/api/taxref/?orderby=cd_nom">http://taxhub-saisie.reserves-naturelles.org/api/taxref/?orderby=cd_nom</a>. If not, click the link.
...

C'est donc bien un problème de redirection.

@MoulinZ
Copy link
Author

MoulinZ commented Jul 17, 2024

Ok merci pour ces infos. Mais dans ce cas d'où vient le problème ? et pourquoi ça ne posait pas de problème avec la version 2.6 ?
Problème qui semble similaire chez @DonovanMaillard si j'ai bien compris.
Un problème dans TaxHub ? Avec certbot ? avec apache ? avec gunicorn comme le suggère le message ?

Voici mon fichier taxhub.conf :

  <VirtualHost *:80>
          ServerName taxhub-saisie.reserves-naturelles.org

          <Location />
                  ProxyPass http://127.0.0.1:5000/
                  ProxyPassReverse http://127.0.0.1:5000/
          </Location>
  RewriteEngine on
RewriteCond %{SERVER_NAME} =taxhub-saisie.reserves-naturelles.org
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Et le fichier généré par certbot pour le https :

<IfModule mod_ssl.c>
  <VirtualHost *:443>
          ServerName taxhub-saisie.reserves-naturelles.org

          <Location />
                  ProxyPass http://127.0.0.1:5000/
                  ProxyPassReverse http://127.0.0.1:5000/
          </Location>

Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/taxhub-saisie.reserves-naturelles.org/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/taxhub-saisie.reserves-naturelles.org/privkey.pem
</VirtualHost>
</IfModule>

@DonovanMaillard
Copy link
Collaborator

DonovanMaillard commented Jul 17, 2024

Je confirme que j'ai bien ce souci également sur 2 instances, avec la conf suivante

# Configuration TaxHub sur sous-domaine
    <VirtualHost *:80>
            ServerName taxons.flavia-ape.fr

            <Location />
                    ProxyPass http://127.0.0.1:5000/
                    ProxyPassReverse http://127.0.0.1:5000/
            </Location>
     RewriteEngine on
RewriteCond %{SERVER_NAME} =taxons.flavia-ape.fr
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
# Fin de configuration de TaxHub

et le ssl :


<IfModule mod_ssl.c>
    <VirtualHost *:443>
            ServerName taxons.flavia-ape.fr

            <Location />
                    ProxyPass http://127.0.0.1:5000/
                    ProxyPassReverse http://127.0.0.1:5000/
            </Location>

Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/geonature.flavia-ape.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/geonature.flavia-ape.fr/privkey.pem
</VirtualHost>
</IfModule>

Il faut sans doute aller voir du coté de taxhub :/

@DonovanMaillard
Copy link
Collaborator

@MoulinZ Le souci ne se posait pas dans la 2.6 , j'imagine que c'est parce que les taxons étaient récupérés différemment et en appelant d'autres routes pour une partie du process.

@MoulinZ
Copy link
Author

MoulinZ commented Jul 17, 2024

d'ailleurs autre étrangeté, c'est que cette erreur n'intervient pas sur une route de l'api précédente :

curl -k -v https://taxhub-saisie.reserves-naturelles.org/api/taxref/regnewithgroupe2
*   Trying 51.159.198.138:443...
* Connected to taxhub-saisie.reserves-naturelles.org (51.159.198.138) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: CN=taxhub-saisie.reserves-naturelles.org
*  start date: Jul 17 05:59:39 2024 GMT
*  expire date: Oct 15 05:59:38 2024 GMT
*  issuer: C=US; O=Let's Encrypt; CN=R10
*  SSL certificate verify ok.
> GET /api/taxref/regnewithgroupe2 HTTP/1.1
> Host: taxhub-saisie.reserves-naturelles.org
> User-Agent: curl/7.74.0
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Wed, 17 Jul 2024 09:49:21 GMT
< Server: gunicorn
< Content-Type: application/json
< Content-Length: 776
< Vary: Cookie,Accept-Encoding
<
* Connection #0 to host taxhub-saisie.reserves-naturelles.org left intact
{"": [""], "Animalia": ["", "Acanthoc\u00e9phales", "Amphibiens", "Ann\u00e9lides", "Arachnides", "Ascidies", "Autres", "Bivalves", "C\u00e9phalopodes", "Crustac\u00e9s", "Entognathes", "Gast\u00e9ropodes", "Hydrozoaires", "Insectes", "Mammif\u00e8res", "Myriapodes", "N\u00e9matodes", "N\u00e9mertes", "Octocoralliaires", "Oiseaux", "Plathelminthes", "Poissons", "Pycnogonides", "Reptiles", "Scl\u00e9ractiniaires"], "Archaea": ["", "Autres"], "Bacteria": ["", "Autres"], "Chromista": ["", "Autres", "Diatom\u00e9es", "Ochrophytes"], "Fungi": ["", "Autres", "Lichens"], "Plantae": ["", "Angiospermes", "Autres", "Chlorophytes et Charophytes", "Gymnospermes", "H\u00e9patiques et Anthoc\u00e9rotes", "Mousses", "Pt\u00e9ridophytes", "Rhodophytes"], "Protozoa": ["", "Autres"]}

@gildeluermoz
Copy link

C'est étrange. Dans un navigateur, si je colle l'url en http : https://taxhub-saisie.reserves-naturelles.org/api/taxref/?orderby=cd_nom
je suis redirigé en https vers https://taxhub-saisie.reserves-naturelles.org/api/taxref/?orderby=cd_nom et il y a bien une réponse json correcte.
Ce qui est étrange c'est que dans le test CURL de @sgrimault le certificat ne semble pas reconnu : SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
Dans mon navigateur le certificat letsencrypt est bien identifié comme valide
image

@MoulinZ
Copy link
Author

MoulinZ commented Jul 17, 2024

En testant sur la commande curl sur l'instance de @DonovanMaillard, on a pas d'erreur de certificat pour le coup, mais quand même une redirection permanente :

curl -k -v https://taxons.flavia-ape.fr/api/taxref?orderby=cd_nom&limit=10000&page=1
Trying 164.132.105.227:443...
* Connected to taxons.flavia-ape.fr (164.132.105.227) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: CN=comptasso.flavia-ape.fr
*  start date: Jun  3 05:55:44 2024 GMT
*  expire date: Sep  1 05:55:43 2024 GMT
*  issuer: C=US; O=Let's Encrypt; CN=R3
*  SSL certificate verify ok.
> GET /api/taxref?orderby=cd_nom HTTP/1.1
> Host: taxons.flavia-ape.fr
> User-Agent: curl/7.74.0
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Mark bundle as not supporting multiuse
< HTTP/1.1 308 PERMANENT REDIRECT
< Date: Wed, 17 Jul 2024 10:16:59 GMT
< Server: gunicorn
< Content-Type: text/html; charset=utf-8
< Content-Length: 295
< Location: http://taxons.flavia-ape.fr/api/taxref/?orderby=cd_nom
< Vary: Cookie
<
<!doctype html>
<html lang=en>
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to the target URL: <a href="http://taxons.flavia-ape.fr/api/taxref/?orderby=cd_nom">http://taxons.flavia-ape.fr/api/taxref/?orderby=cd_nom</a>. If not, click the link.
* Connection #0 to host taxons.flavia-ape.fr left intact

@DonovanMaillard
Copy link
Collaborator

DonovanMaillard commented Aug 5, 2024

@gildeluermoz @MoulinZ J'ai pu trouver une explication possible et une solution avec l'aide de mon ami ChatGPT...

Il semble qu'avec la configuration par défaut de TaxHub et Apache, les règles "Location" Proxy et ProxyReverse traitent une partie des requêtes en http avant que les redirections https soient faites.

J'ai donc supprimé les règles "Location" de taxhub.conf sur le port 80, pour ne laisser la règle que sur le port 443 (taxhub-le-ssl.conf). En complément, j'ai ajouté les règles suivantes pour s'assurer que la redirection https soit faite avant de passer par le proxy :

<Location />
        ProxyPass http://127.0.0.1:5000/
        ProxyPassReverse http://127.0.0.1:5000/
        # Ajoutez les en-têtes nécessaires pour HTTPS
        RequestHeader set X-Forwarded-Proto "https"
        RequestHeader set X-Forwarded-Ssl on
</Location>

En faisant ça, j'ai bien une réponse valide sans Location http avec la commande curl -k -v https://taxons.flavia-ape.fr/api/taxref et j'ai bien une synchronisation correcte de mes taxons avec une version 2.7 du mobile 👍

@DonovanMaillard
Copy link
Collaborator

On vient de regarder avec Théo et Camille, dans les conf par défaut, il y a bien la règle RequestHeader set X-Forwarded-Proto "https" dans la conf geonature-le-ssl, qui fait appel à taxhub.conf dans les conf-available. Les installations par défaut et instance de démo fonctionnent donc sans soucis.

Le souci vient donc des configurations apache "custom" qu'on conserve depuis un certain nombre de versions pour certains, pour gérer nos sous-domaines respectifs. D'ailleurs pour ma part, il manque aussi une autre règle dans mes conf taxhub :

Alias "/taxhub/static" "/home/demo/TaxHub/static"
<Directory "/home/test/TaxHub/static">
    AllowOverride None
    Require all granted
</Directory>

Je repartagerai rapidement des conf à jour pour les sous-domaine en me calquant sur les configurations par défaut de geonature sans sous-domaine, mais je me pose sérieusement la question pour ma part de conserver ces sous-domaines. Je pense repasser sur les conf par défaut pour limiter ce genre de soucis et les recherches de bugs associés :)

@cen-cgeier
Copy link

cen-cgeier commented Aug 7, 2024

Bonjour à tous, même erreur de mon côté que celle obtenue par @sgrimault lors de son test de l'api des réserves.
Pourtant ici pas de sous domaine en place..
j'ai tester la commande curl :

curl -k -v https://geonature.cen-isere.fr/taxhub/api/taxref?orderby=cd_nom&limit=10000&page=1

Le retour de console évoque :

 * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: CN=geonature.cen-isere.fr
*  start date: Jun 25 01:44:20 2024 GMT
*  expire date: Sep 23 01:44:19 2024 GMT
*  issuer: C=US; O=Let's Encrypt; CN=R11
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
> GET /taxhub/api/taxref?orderby=cd_nom HTTP/1.1
> Host: geonature.cen-isere.fr
> User-Agent: curl/7.81.0
> Accept: */*

En revanche tout semble OK sur la commande :

curl -k -v https://geonature.cen-isere.fr/taxhub/api/taxref/regnewithgroupe2

Concernant les configurations apache voici ce que j'ai :

  • sites-available/geonature.conf
    ServerName geonature.cen-isere.fr

    IncludeOptional /etc/apache2/conf-available/geonature.conf
    IncludeOptional /etc/apache2/conf-available/taxhub.conf
    IncludeOptional /etc/apache2/conf-available/usershub.conf

    ErrorLog "/var/log/apache2/geonature_error.log"
    CustomLog "/var/log/apache2/geonature_access.log" combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =geonature.cen-isere.fr
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
  • sites-available/geonature-le-ssl.conf
            ServerName geonature.cen-isere.fr
            DocumentRoot /home/geonatureadmin/geonature/frontend/dist

            <Directory /home/geonatureadmin/geonature/frontend/dist>
                    Require all granted
            </Directory>

            <Location /api>
                    ProxyPass http://127.0.0.1:8000 timeout=300
                    ProxyPassReverse  http://127.0.0.1:8000
            </Location>

IncludeOptional /etc/apache2/conf-available/geonature.conf
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/geonature.cen-isere.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/geonature.cen-isere.fr/privkey.pem
  • sites-available/taxhub.conf
<Location /taxhub>
ProxyPass  http://127.0.0.1:5000 retry=0
ProxyPassReverse  http://127.0.0.1:5000
</Location>

J'ai tenté de modifier le geonature-le-ssl.conf et le taxhub.conf (l'un après l'autre indépendamment) en ajoutant dans les balises <Location> :

RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Ssl on

Mais rien n'y fait ...

@DonovanMaillard
Copy link
Collaborator

Bonjour,

As-tu essaye de mettre les RequestHeader après les balises Location dans GeoNature-le-ssl ? Et bien relancé apache2 ensuite ?

@cen-cgeier
Copy link

cen-cgeier commented Aug 7, 2024

En effet placer les RequestHeader en dehors des balises Location dans le fichier geonature-le-ssl.conf lorsque Taxhub n'est pas un sous domaine permet de solutionner le problème. *
Merci !
Cela permet lors de l'appel de l'api https://geonature.cen-isere.fr/taxhub/api/taxref?orderby=cd_nom&limit=10000&page=1 de rediriger vers https://geonature.cen-isere.fr/taxhub/api/taxref/?orderby=cd_nom&limit=10000&page=1 ce qui n'était pas le cas précédemment.
Je trouve tout de même étrange que l'api soit appelé sans / après taxref

@DonovanMaillard
Copy link
Collaborator

Le problème peut donc se poser également hors contexte de sous-domaines.

Pour le souci c'est qu'une partie des règles à gérer se font dans le fichier de conf ssl, donc après génération du fichier par certbot. Il faudra qu'on complète la doc sur ce point, à plus forte raison si le passage en https et la redirection de toutes les requêtes est indispensable pour le mobile.

En l'état, il y a donc plusieurs choses sur lesquelles il faut être vigilant.D'abord l'ajout des règles RequestHeader après (et en dehors) des balises Locations, pour s'appliquer à toutes les requetes des applis. Ensuite, que les "include" des fichiers conf-available soit dans le ssl et pas dans le geonature.conf, pour ne pas rediriger les requetes vers les proxy depuis le port 80 visiblement. On a donc un petit travail à faire sur la doc, mais le souci ne repose pas sur l'appli occtax-mobile en elle-même.

Je ferme le ticket ici et j'en ouvre un coté taxhub et geonature puisque c'est ces docs là qu'il faudra mettre à jour :)

@geobrun
Copy link

geobrun commented Aug 14, 2024

@DonovanMaillard : merci pour les explications, j'ai rencontré le même souci et cela m'a permis de résoudre le problème !

@camillemonchicourt
Copy link
Member

Je ré-ouvre car je ne crois pas que cela a été clarifié/tracé côté TaxHub et/ou GeoNature.

@DonovanMaillard
Copy link
Collaborator

Non pas encore, je teste différentes règles et contextes car :

  • J'ai profité pour intégrer des améliorations proposées par Gil mais l'une d'elle génère un souci (taxhub marche bien pour le mobile mais plus pour le web :) )
  • Ces règles sont sur les fichiers -le-ssl et pas dans la conf de base générée à l'install, donc à priori il faudra surtout que ca se passe dans la doc...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

7 participants