Re: Spip 3 et https
Gilles Vincent <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <CA+Q4CmtBAZb8Bk0n8bRbV4OO_XU91nie-vR=OQdjeic8PefRhQ@mail.gmail.com> |
Effectivement des fois l'hébergeur s'amuse à configurer ce type d'info de manière fantaisiste. Un traitement au cas par cas (ou configurable) selon ce type de paramètres est indispensable pour être utilisé. 2016-08-06 10:32 GMT+02:00 Cédric Morin <[email protected]>: > Comme je l'indiquais à Gilles dans un mail sur spip-dev du 17/06, ce cas > précis n'est pas nickel nativement, mais peut très facilement se traiter > avec un script en prepend : > > > Non il ne s'agirait pas de forcer https, mais d'activer la prise en compte >> des headers HTTP_X_FORWARDED_PORT HTTP_X_FORWARDED_PROTO >> >> Cette partie du code n'est pas nickel dans url_de_base(), et est à revoir. >> Aujourd'hui on tourne avec un Apache en proxy pour https (on fait donc >> Apache:443 > Varnish > Apache:80), sans modification de SPIP, mais avec les >> quelques lignes suivants en prepend php. Cela peut s'appliquer à n'importe >> quel proxy frontal, les headers étant conventionnels : >> >> if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) >> AND $_SERVER['HTTP_X_FORWARDED_PORT']==='443' >> AND isset($_SERVER['HTTP_X_FORWARDED_PROTO']) >> AND $_SERVER['HTTP_X_FORWARDED_PROTO']==='https') { >> $_SERVER['HTTPS'] = 'on'; >> $_SERVER['SERVER_PORT'] = '443'; >> if (isset($_SERVER['REQUEST_SCHEME'])) { >> $_SERVER['REQUEST_SCHEME'] = 'https'; >> } >> if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { >> $i = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']); >> $i = reset($i); >> $_SERVER['REMOTE_ADDR'] = $i; >> } >> if (strpos($_SERVER['HTTP_X_FORWARDED_HOST'],',')!==false){ >> $h = explode(',',$_SERVER['HTTP_X_FORWARDED_HOST']); >> $_SERVER['HTTP_X_FORWARDED_HOST'] = trim(end($h)); >> } >> } >> >> Notez au passage que je découpe les HTTP_X_FORWARDED_FOR >> HTTP_X_FORWARDED_HOST pour le cas où on aurait du double proxy (j'ai eu le >> cas sur un site transféré d'un autre serveur que j'ai mis en proxy le temps >> de la propagation DNS, du coup on avait empilement des en-têtes avec 2 IP >> et 2 hosts dans les headers). >> >> Le problème d'appliquer cela par défaut c'est de risquer de l'injection >> de headers. Il faut verifier avec precaution si cela peut empoisonner le >> cache d'un visiteur normal, ou peut-être il faut ajouter les 2 headers en >> signature du cache. Ou n'activer cela que via une configiration ou define ? >> > > > > > -- > Cédric > > > > Grégoire a écrit : > > Bonsoir, >> >> j'utilise Spip 3.0.20 essentiellement, et si je met en place HTTPS >> pour les sites en Spip, je ne peux presque plus les administrer. >> SI c'est pour valider un formulaire en appyant sur la touche entrée, >> ça passe. Mais aucun bouton n'est fonctionnel. >> >> Je remarque que tous les liens internes restent en http, même après >> avoir configuré le site avec le nom de domaine en https et avoir >> vidé le cache. >> Tous les liens dans les syndications sont aussi en http... >> >> J'ai lu que l'utilisation du proxy par Spip pouvait poser problème, >> je l'ai désactivé sans plus d'améliorations. >> >> Mes sites Spip sont situés sur une VM qui est derrière un reverse >> proxy qui s'occupe de la partie SSL. >> >> Ce n'est pourtant pas une situation exceptionnelle, bien au contraire. >> >> Est ce que j'ai manqué quelque chose? >> >> Pour le moment je suis obligé de désactiver la redirection >> automatique vers https, c'est dommage. >> >> Est ce que Spip 3 est compatible avec https? >> >> Bon week-end >> Grégoire >> >> _______________________________________________ >> liste: http://listes.rezo.net/mailman/listinfo/spip-dev >> doc: http://www.spip.net/ >> dev: http://trac.rezo.net/trac/spip/ >> irc://irc.freenode.net/spip >> > _______________________________________________ > liste: http://listes.rezo.net/mailman/listinfo/spip-dev > doc: http://www.spip.net/ > dev: http://trac.rezo.net/trac/spip/ > irc://irc.freenode.net/spip >