[spip-dev] Installation SPIP HTTPS front + back

Bonjour,

Je rencontre un problème étrange lors de l'installation d'un SPIP sur
un environnement full HTTPS.

Après avoir développé tout le site sur un environnement HTTP,
j'installe le site dans l'environnement de production en HTTPS et je
n'arrive plus à me connecter au back-office : après avoir saisie mon
mot de passe dans le formulaire de login
(https://url_du_site/spip.php?page=login&url=ecrire%2F), je me
retrouve rediriger vers http://url_du_site/spip.php?action=cookie au
lieu de https://url_du_site/spip.php?action=cookie donc
l'authentification ne peut se terminer...

A part modifier la meta "adresse_site", pour mettre la nouvelle URL du
site en HTTPS, y a t-il d'autres choses à modifier ?

Merci de votre aide.

PS : le cache est bien vidé et je suis en SPIP 1.9.2d

Je relance avec une petite précision, il semble que #URL_PAGE retourne
toujours une URL en HTTP et non basée sur le protocole utilisé dans le
meta adresse_site.

Quelqu'un connait une astuce pour s'en sortir ?

Merci,
Thomas

Thomas Beaumanoir wrote:

Je relance avec une petite précision, il semble que #URL_PAGE retourne
toujours une URL en HTTP et non basée sur le protocole utilisé dans le
meta adresse_site.

Quelqu'un connait une astuce pour s'en sortir ?

Une petite redirection apache de tout le traffic sur http en https ?

Effectivement il y a encore des adresses "http" codées en dur dans la version svn d 5 juillet et qui risquent de poser problème:

charger.php
ligne 92
'url_site' => "http://",

signature.php
ligne 20
'signature_url_site'=>'http://',

site.php
ligne 17
return array('nom_site'=>'','url_site'=>'http://','description_site'=>'');

formulaire_admin.php
ligne 177
function admin_valider()
{
  global $xhtml;

  return ((@$xhtml !== ‘true’) ?
    (parametre_url(self(), ‘var_mode’, ‘debug’, ‘&’)
      .’&var_mode_affiche=validation’) :
    (‘http://validator.w3.org/check?uri=’
     . rawurlencode(“http://” . $_SERVER[‘HTTP_HOST’] . nettoyer_uri())));
}

relayeur.php
ligne 52
$encours = "<label for='http_proxy'>" . ($http_proxy ? $http_proxy : "http://proxy:8080") . '</label>' ;

aide_index.php
ligne 195
Line 195 : $html = preg_replace('@<a href="(http://[^"]+)"([^>]*)>@', '<a href="\\1"\\2 target="_blank">', $html);

sites_edit.php
lignes 16, 101, 102, 165, 100
ne devrait pas poser problème

valider_xml.php
ligne 32
$url_aff = 'http://';

distant.php
lignes 170, 171
   // Accepter les URLs au format feed:// ou qui ont oublie le http://
  $url = preg_replace(',^feed://,i', 'http://', $url);
  if (!preg_match(',^[a-z]+://,i', $url)) $url = 'http://'.$url;

feedfinder.php
ligne 105
if (!preg_match("/^http:\/\/.*/", $url)) $url = "http://www." . $url;
ligne 198
$url = str_replace("http:/", "http://", $url

joindre.php
ligne 102
"</label><br />\n\t<input name='url' id='url' class='fondo' value='http://' />" .

referenceurs.php
lignes 75
$ret .= "\n<a href=\"http://".$lesurls[$numero]."\"><img src=\"$source_vignettes".rawurlencode($lesurls[$numero])."\"\nstyle=\"float: $spip_lang_right; margin-bottom: 3px; margin-left: 3px;\" alt='' /></a>";
ligne 88
$bouton .= "<a href='http://".quote_amp($lesurls[$numero])."' style='font-weight: bold;'>".$dom."</a>"
ligne 103
$lien = "<a href='http://".$dom."'>".$dom."</a>";

site.php
ligne 22
$url = preg_replace(',^feed://,i', 'http://', $url);
ligne 23
if (!preg_match(',^[a-z]+://,i', $url)) $url = 'http://'.$url;

texte.php
ligne 667
$lien = "http://".$lien;
ligne 1228
$l = inserer_attribut(expanser_liens('[->http://'.$l.']'),'rel', 'nofollow');
ligne 1232
$l = str_replace('>http://', '>', $l);

virtualiser.php
ligne 21
. ($virtuel ? "" : "http://")

analyser_dtd.php
ligne 142
AND !preg_match("%^http://%", $n[1])) {

Voilà tout ce que j'ai trouvé. Malheureusement je n'ai pas le temps de faire toutes les vérifications moi-même. Peut-être cette petite liste vous sera utile.

klaus++

Nicolas Steinmetz schrieb:

Salut à tous,

Je n'ai pas la main directement pour le faire, mais j'espère que
l'hébergeur n'y verra pas d'objection...

Merci Nico :wink:

Ok, donc la proposition de Nico semble la seule envisageable pour
régler mon problème.

Merci

Puisqu’on est sur le sujet https j’ajoute un cas de plantage, je ne l’ai pas encore étiqueté car j’essaye d’affiner le diagnostic :
il semble que l’utilisation d’un proxy pour faire des requetes en https via la fonction recuperer_page ne fonctionne pas, il manque apparemment un connect dans la construction de la requete pour s’identifier sur le proxy.

a+

Un ticket et un patch corrigeant les reliquats de http en dur pourrait aussi être une solution...

Comme on est en train de serrer les boulons pour la sortie d'une beta, c'est le moment pour voir cela rapidement dans une version stable.
Sinon ca sera reporté à une prochaine échéance.
Mais fais au moins un ticket, si tu veux voir cela intégré un jour.
Cédric