-
Notifications
You must be signed in to change notification settings - Fork 103
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
mixed content (invocation d'une API en http depuis une page https) #2936
Comments
Une fois passé en HTTPS, il faut mettre à jour la configuration de GeoNature pour que l'API soit interrogée en HTTPS, voir la doc sur le sujet : https://docs.geonature.fr/installation.html#https |
Merci Camille. Après avoir vu le fameux fichier de config mentionné dans la doc, j'ai modifié la config. L'appel api/gn_commons/config retourne un document json avec API_ENDPOINT en https comme on le souhaite. J'ai suivi également la doc pour reconstruire le frontend (pas clair que ce soit encore nécessaire, en tout cas je l'ai fait). J'ai toujours la même erreur avec geonature ; Aussi une erreur avec usershub: J'ai essayé de comprendre ce que fait le code frontend/src/app/services/config.service.ts
puis il utilise cet endpoint pour la suite. Dans mon cas, assets/config.json n'a pas été correctement mis à jour et l'endpoint connu du client en'est pas le bon.. Fausse manip de ma part ou problème de build? Où est ce que je dois chercher ce fichier ou le code qui répond à cette API ? merci d'avance |
Je vois le fichier config.json dans frontend/src/assets/config.json (et frontend/dist/assets/) . |
La release note de la 2.12.0 dit :
Je n'ai pas vu cette précision dans la doc d'installation , et surtout je n'ai pas édité à la première installation le fameux fichier J'ai l'impression que la modification après coup de |
On n'est pas censé modifier à la main le fichier Le plus propre est certainement de relancer le script d'installation du frontend qui se charge notamment de renseigner ce fichier : https://github.com/PnX-SI/GeoNature/blob/master/install/05_install_frontend.sh#L67-L70 |
Ben non justement. |
Erreur de ma part, je pensais que le script remplacer la valeur de Du coup, plusieurs solutions:
|
Dans tous les cas, on n'est pas censé modifier manuellement le fichier |
Si, actuellement, si on change d'URL ou qu'on passe en HTTPS, il est nécessaire de modifier ce fichier. |
Je viens de faire un rapide test avec l'URL sans spécifier le protocole dans le fichier config.json et ça fonctionne. Ne serait-ce pas une solution plus générique ? |
A voir si on fait évoluer le script 05_install_frontend.sh pour qu'il puisse être relancé et mettre à jour ce fichier, ou alors si on indique dans la doc de modifier ce fichier manuellement si on modifie l'URL. |
ça me parait un peu lourd de relancer toute l'installation du frontend juste pour modifier un paramètre de conf. Pour moi il faut indiquer dans le doc que si on modifie l'URL de son API, il faut le spécifier dans ce fichier de conf frontend |
Oui, mais c'est dommage de demander à l'administrateur de saisir un paramètre de configuration que l'on sait inférer de la configuration du backend (paramètre qu'on n'a d'ailleurs pas demandé lors de l'installation initiale). |
Depuis la version 2.11, une séparation du frontend et du backend s'est effectuée dans la cadre de la dockerisation de GeoNature (#2088). Par conséquent, il n'est pas possible de (ré) inclure une commande (ou autres solutions) depuis le backend. Pour moi, une solution serait d'intégrer un item dans la FAQ sur le changement d'URL d’accès à GeoNature. |
J'ai essayé la proposition de @hypsug0 de configurer le frontend avec une url sans scheme (dans le fichier frontend/dist/assets/config.json). Cela fonctionne.
ce qui permet en principe de passer de http à https, de changer le nom de domaine ou même d'accepter plusieurs noms de domaine sans avoir à toucher à la configuration du frontend. Vous semble-t-il envisageable d'autoriser les url relatives dans la configuration, d'en profiter pour définir des url par défaut (/geonature /geonature/api /usershub, ...) et de revoir les scripts d'installation pour qu'ils acceptent ces url ? |
Le script "install/05_install_frontend.sh" se charge désormais de mettre à jour l'URL si on le relance et la doc a été complétée sur le sujet. |
Version
2.13.4
Description du bug
après avoir ajouté le support https (certbot) à mon nouveau serveur geonature, fraîchement installé, il devient impossible de se connecter, la page d'accueil affiche le message "cannot log config from API". La console du navigateur affiche le message d'erreur :
Blocked loading mixed active content “http://xxxxx/geonature/api/gn_commons/config”
le message est explicite, mais j'ai néammoins vérifié que l'API fonctionne (en https, et aussi en http, dans ce cas le serveur apache redirige vers https).
Comportement attendu
Utilisation de https pour invoquer l'api gn_commons/config
Voir le fichier frontend/src/app/services/config.service.ts
Comment reproduire
Installation de la suite geonature avec le script install_all sur un debian 12 tout neuf.
Configuration https du serveur apache avec certbot.
ouvrir l'url de geonature ou de usershub avec firefox ou chrome (versions à jour).
Logs
L'erreur apparaît sur le navigateur, qui bloque l'appel à l'API geonature
firefox
Blocked loading mixed active content “http://xxxx/geonature/api/gn_commons/config”
chrome
Mixed Content: The page at 'https://xxxx/geonature/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://xxxx/geonature/api/gn_commons/config'. This request has been blocked; the content must be served over HTTPS.
Re @ polyfills.25e6f5a201d9f0da.js:1
The text was updated successfully, but these errors were encountered: