Juin 022013
 

Depuis Apache 2.2.12, et le support natif du SNI (Server Name Identification), il est possible d’héberger plusieurs sites web sur un seul serveur tout en utilisant différents certificats SSL. Cela vous permet par exemple de protéger différents sous domaines avec plusieurs certificats SSL de classe 1 (qui peuvent être obtenus gratuitement sur StartSSL…) La plupart des navigateurs supportent aujourd’hui le SNI et la mise en place est très simple grâce à ISPConfig 3. Ce post a donc pour objectif de vous guider à travers les étapes nécessaires.

 Prérequis

Je suppose dans ce post que vous disposez déjà d’un serveur fonctionnel avec ISPConfig 3 installé et correctement configuré. Je vous invite, si cela n’est pas le cas, à lire mes précédents posts sur la mise en place d’un serveur de ce type: Installation ISPConfig 3 Je vous conseille également de lire l’article suivant: Sécuriser ISPConfig avec un certificat SSL, ce post vous permettra de mettre en place un certificat global pour votre configuration apache et notamment votre accès ISPConfig. Il vous permettra en plus de vous familiariser avec StartSSL qui vous permettra d’obtenir gratuitement vos certificats SSL signés.

Création d’un site web avec un certificat SSL non signé

Dans un premier temps, nous allons créer un site web et son certificat associé (non signé) entièrement via ISPConfig. Rendez vous pour cela dans l’onglet Site puis sélectionnez Ajouter un nouveau siteVous pouvez, bien évidemment, choisir un site déjà existant…

ISPConfig 3, création d'un site web

ISPConfig Création Site Web

Entrez les paramètres souhaités, n’oubliez pas de cocher la cas SSL sur la 4ième avant dernière ligne. Cliquez ensuite sur l’onglet SSL vous arrivez sur la page suivante:

Création d'un site ISPConfig, onglet SSL

Création site ISPConfig, onglet SSL

Cette page vous permet de créer entièrement votre certificat SSL via ISPConfig en créant automatiquement la clé privée, la requête CSR et un certificat (non signé.) Rentrez pour cela les paramètres demandés. (Attention, la traduction ISPConfig en français souffre d’une erreur et la première ligne concerne en réalité l’état ou le département)
Il est inutile de remplir les champs SSL key, Requête SSL, Certificat SSL ou encore SSL Bundle. Choisissez Créer le certificat dans le champ Action SSL puis cliquez sur Enregistrer.

Vous êtes alors renvoyé sur la page d’accueil de la créations de site web. Patientez une minute le temps pour ISPConfig d’effectuer les actions nécessaires et de recharger la configuration d’Apache puis revenez sur la configuration de votre site web sous l’onglet SSL.
Vous devriez avoir les trois premiers champs SSL remplis.

Création d'un site ISPConfig, onglet SSL

Création site ISPConfig, onglet SSL, complété.

A ce stade, votre site est déjà accessible en SSL. Vous pouvez tester en accédant à la page https://votresite.com
Toutefois, vous devriez tomber sur un message d’erreur vous mettant en garde contre un certificat non signé. Si vous acceptez de continuer avec ce certificat non signé, vous accéderez alors à votre site. (Vous pouvez vérifier que le certificat présent correspond à celui que vous venez de créer.)

Signature de votre certificat SSL

A partir du certificat non signé (créé précédemment)

Nous allons à présent créer un certificat SSL signé gratuitement et simplement via StartSSL.
Pour plus de détail sur l’utilisation de StartSSL, je vous invite à consulter ce post précédent: Sécuriser ISPConfig avec un certificat SSL

– Dans l’onglet Certificates Wizard  sélectionnez Web Server SSL/TLS Certificate dans le champs Certificate Target
– Sautez l’étape de génération d’une clé privée puisque nous disposons déjà de la notre.
– A l’étape suivante Submit Certificate Request (CSR) collez le contenu de la zone Requête SSL (la deuxième zone, dont le contenu commence par —–BEGIN CERTIFICATE REQUEST—–)
– Cliquez sur Continue sur la page de validation de votre requête CSR
– Sélectionnez votre domaine (Vous devez avoir un domaine validé) puis, à l’étape suivante, entrez le sous domaine de votre site web.

StartSSL, choix du sous-domaine

StartSSL, choix du sous-domaine

– Validez, après avoir vérifié toutes les informations et attendez la création de votre certificat.

Vous devriez alors récupérer votre certificat, qui doit être de la forme suivante:

Il ne vous reste alors plus qu’à recopier celui ci intégralement dans la zone Certificat SSL de ISPConfig. (Faites attention à ne pas laisser d’espaces.)
Sélectionnez alors Enregistrer le certificat dans Action SSL puis cliquez sur Enregistrer.

Après quelques instant (une petite minute environs) votre site web doit être accessible sous l’adresse https://votresite.com Si tout s’est déroulé comme prévu, vous ne devriez plus voir apparaître de message d’erreur. Si vous vérifiez votre certificat, vous pouvez contrôler qu’il vous a été délivré par StartCom Class 1 Primary Intermediate Server CA.

Votre site web est ainsi sécurisé à l’aide d’un certificat signé. Vous pouvez répéter cette opération autant de fois que souhaité pour autant de sous domaines qu’il vous sera nécessaire. Toutefois, pour simplifier l’opération, il n’est pas nécessaire de recréer une clé privée et une requête CSR à chaque fois. Vous pouvez alors suivre la procédure suivante pour vos sites supplémentaires.

A partir d’une clé privée précédemment générée (et d’une requête CSR associée.)

Si vous disposez déjà d’une clé privée ainsi que de la requête SSL associée, il ne vous est pas nécessaire de suivre la première partie de ce tutoriel.

Si vous avez suivi le tutoriel précédent (Sécuriser ISPConfig avec un certificat SSL) par exemple, vous pouvez récupérer la clé privé et le certificate signing request dans /usr/local/ispconfig/interface/ssl . L’avantage de cette méthode est uniquement de ne disposer que d’une clé privée pour votre serveur et ainsi de ne pas avoir besoin d’en générer systématiquement une nouvelle. Vous pouvez toutefois suivre la procédure ci-dessus si vous le préférez.

Une fois votre requête SSL récupérée, il vous suffit de suivre la procédure ci-dessus pour créer votre certificat signé. Une fois votre certificat signé, il vous suffit de remplir les trois champs SSL key, Requête SSL et Certificat SSL puis de sélectionner  Enregistrer le certificat dans Action SSL. Il ne vous reste alors plus qu’à enregistrer.

Forcer l’utilisation de https pour votre site web

Une fois votre certificat correctement créé et mis en place, vous pouvez décider de n’autoriser que les connexions en https sur votre site web.

Pour cela, nous allons modifier les Directives Apache. Sélectionnez le site web concerné et rendez vous dans l’onglet Options.
Remplissez la zone Directives Apache comme suit:

Il ne vous reste plus qu’à enregistrer.

Site web, onglet options, modification des directives apache

Site Web, onglet Options

Après moins d’une minute (le temps du rechargement de la configuration apache) votre redirection sera effective. Votre site web redirige automatiquement toute connexion http sur https. Voilà qui conclue ce tutoriel sur la mise en place du SSL pour vos sites web via ISPConfig. N »hésitez pas si vous avez des questions à propos de ce tutoriel et jetez un œil aux autres articles de ce site.

  6 commentaires à “SSL multiple sur apache avec ISPConfig”

  1. Bonjour,

    en suivant le début de la procédure, j’obtiens le message suivant en essayant de créer le certificant

    ERROR Etat SSL invalide. Les caractères valides sont: a-z, 0-9 et .,-_

    • Bonjour,

      A priori, l’erreur me semble plutôt claire. Avez vous des caractères spéciaux dans le nom de domaine pour lequel vous créez un certificat?

      Cordialement,

  2. Bonjour, votre article est très intéressant. De mon côté j’aimerais pouvoir activer SSL sur uniquement 1 domaine de mon serveur.
    Le problème c’est que quand j’active SSL et que je génère un certificat via ISPConfig tous les domaines redirigent vers celui qui a le certificat … gros problème donc. Auriez-vous une piste ?

    • Bonjour,

      Je ne comprends pas exactement votre problème, la création d’un site avec le ssl activé ne devrait pas impacter les autres sites.
      Si vous créez deux sites distincts et que vous n’activer le ssl que sur un seul de ces deux sites, pouvez vous accéder au site sur lequel ssl est désactivé?
      Comment avez vous généré le certificat? (Via la console ssh ou via l’interface graphique d’ISPConfig?)

      • Bonjour, logiquement chaque site est indépendant mais dans mon cas tous les sites sont impactés …
        Les sites où SSL n’est pas activé affichent le contenu du site avec SSL activé et le certificat généré.
        Le certificat a été généré simplement via l’interface d’ISPConfig.

      • Avez vous activé SNI dans les options ISPConfig?
        Menu Système > Configuration Serveur > Cliquez sur votre serveur pour ouvrir les paramètre > Onglet ‘Web’ > Choisissez le menu déroulant ‘SSL Settings’ > Cochez la caseEnable SNI

        Je pense que j’ai oublié de précisez cela sur l’article. Précisez moi si cela fonctionne, je mettrais à jour l’article.

Désolé, les commentaire sont désactivés pour l'instant.