l'informalibre :   Accueil  |  2007  |  2008  |  Tous

Configuration de .htaccess pour l'accès SSL mutualisé de 1and1 (ssl.1and1.fr)

Juin 2007

Sommaire

1 Principe

L'accès SSL mutualisé de 1and1 permet d'offrir un accès en mode https à votre domaine ou sous-domaine en utilisant un proxy ssl (ssl.1and1.fr) et un certificat commun à l'ensemble des domaines ou sous-domaines.

Cet accès se configure dans la partie | GESTION DU PACK > Configuration des Domaines > Accès SSL Mutualisé | où l'on définit le domaine ou sous-domaine accessible par le proxy.

Remarque : https://sslrelay.com ou https://ssl.1and1.fr sont deux proxys différents qui offrent la même fonctionnalité.

Convention :

2 Problème

La configuration à l'aide du gestionnaire de pack ne modifie pas l'accès en http à mondomaine qui est toujours possible.

Le but étant de sécurisé la communication entre le serveur et le client il faut que l'accès en http non sécurisé ne soit plus possible.

3 Solution

Apache dispose d'un moteur de réécriture d'URL que nous allons utiliser.

Pour ce faire, il est nécessaire de pouvoir distinguer les requêtes provenant du proxy des requêtes des autres clients.

Le petit script php suivant lancé en passant par ssl.1and1.fr permet de trouver rapidement ce que nous cherchons :

<?php
echo "Nom Client : ".$_SERVER['REMOTE_HOST']." | ";
echo "Addresse Client : ".$_SERVER['REMOTE_ADDR'];
?>

En effet, si le nom du proxy est vide nous disposons de son ou ses adresses IP (elle peut varier) qui se trouvent dans une plage d'adresses privées de classe B en 172.23/16. Ces adresses n'étant pas routables sur le réseau Internet la requête provient obligatoirement du réseau "interne" de 1and1 et non de l'extérieur.

3.1 Accès en SSL automatique

Ce qui nous permet de configurer la réécriture suivante dans le fichier .htaccess :

1. RewriteEngine On
2. RewriteCond %{REMOTE_ADDR} !^172\.23\..*$
3. RewriteRule ^(.*) https://ssl.1and1.fr/mondomaine/$1
  1. on active la réécriture
  2. si l'adresse du client n'est pas dans la plage 173.23/16
  3. réécrire l'URL en passant par le proxy (on met l'URL sans le host dans $1 et on l'ajoute au nouvel host)

Dans ce cas les requêtes en http sont systématiquement servies en https.

3.2 Accès en SSL automatique avec Authentification

Si l'on se contente d'utiliser la redirection précédente le navigateur demande l'authentification en http puis est "renvoyé" sur le proxy et l'on doit s'authentifier une deuxième en https. Ce qui pose deux problèmes :

La solution consiste donc à bloquer l'accès en http (Erreur 403) et à personnaliser la page d'erreur renvoyée dans le fichier .htaccess pour nous rediriger vers https://ssl.1and1.fr/mondomaine... et forcer l'authentification en https :

# Authentification
AuthType Basic
AuthUserFile .../.htpasswd
AuthName ".:| Espace Sécurisé |:.>"
Require user Utilisateur

# order nécessaire pour rejet non proxy_ssl avant authentification
Order Allow,Deny
# plage proxy_ssl
Allow from 172.23

# Personnalisation Erreur 403
ErrorDocument 403 https://ssl.1and1.fr/mondomaine...

l'informalibre :   Accueil  |  2007  |  2008  |  Tous

KYUDO Informatique : Creation Site Marchand Avignon  - Création Site Internet Professionnel Avignon