Mettre en place une connexion SSL avec WAMP

I. Présentation

Ce tutoriel a pour but de vous expliquer comment mettre en place une connexion SSL sur un serveur web réalisé avec le logiciel WAMP. Ce qui vous permettra d’utiliser le protocole HTTPS (HTTP Sécurisé) pour naviguer sur votre site web de manière sécurisé.

Le certificat créé dans ce tutoriel est un certificat auto-signé par le serveur local, il n’est pas signé par un organisme de certification ce qui a pour effet que ce certificat doit être utilisé en interne uniquement c'est-à-dire dans un intranet, par exemple.

Remarque : Dans les différentes commandes, les différents chemins à modifier dans les fichiers, méfiez vous de la version de votre Apache car le nom du dossier change selon la version. Dans notre cas : apache2.2.11.

II. Création des clés RSA (privée et publique)

  •  Pour se faire nous avons besoins d’utiliser des commandes DOS, ouvrez donc une « Invite de commande ».
  •  Placez-vous dans le répertoire « bin » d’Apache en utilisant la commande suivante :
cd c:\wamp\bin\apache\apache2.2.11\bin
  •  Une fois placé dans ce répertoire, exécutez la commande suivante pour créer la clé privée RSA (avec un cryptage AES) :
openssl genrsa -aes256 -out clef.key 2048

clef.key correspond au nom que vous souhaitez donner à votre clé.

  •  La clé privée se génère…. Ce message apparaît « Enter pass phrase for clef.key : »

Vous devez saisir une passphrase c'est-à-dire un mot de passe qui permet de déchiffrer la clé privée.

  •  Ensuite, entrez la commande suivante pour créer la clé publique à partir de la clé privée :
openssl rsa -in clef.key -out neoflow.key

Remplacez “neoflow” par le nom de votre serveur, nom de domaine ou par localhost si vous souhaitez essayer uniquement en local. Remplacez aussi «clef.key » par le nom de la clé indiqué lors de l’étape précédente, s’il est différent de notre exemple.

III. Création du certificat auto-signé

  •  Toujours dans l’invite de commande, exécutez la commande suivante pour créer le certificat à partir de la clé publique du serveur :
openssl req -new -x509 -nodes -sha1 -key neoflow.key -out neoflow.crt -days 365 -config C:\wamp\bin\apache\apache2.2.11\conf\openssl.cnf

Indiquez le nom de la clé publique précédemment créée à la place de neoflow.key, ainsi que pour le nom du certificat (.crt) saisissez le même nom soit le nom correspondant à votre serveur.

Remplacez 365 par le nombre de jours souhaités pour augmenter la durée de validité du certificat.

  •  Saisie des informations concernant le certificat :

wamp-ssl1

Vous n’êtes pas obligé de tout remplir, vous pouvez vous contenter de remplir le Common Name en mettant le nom du serveur.

IV. Création d’un répertoire pour stocker les fichiers nécessaires au SSL

  •  Créez un répertoire appelé « ssl » dans :
C:\wamp\bin\apache\apache2.2.11\conf
  •  Copiez dans ce répertoire votre certificat et votre clé publique (dans notre cas neoflow.crt et neoflow.key).

Ces fichiers se trouvent dans le répertoire : c:\wamp\bin\apache\apache2.2.11\bin

V. Création d’un répertoire pour stocker les logs de SSL

On crée se répertoire, appelé « logs », dans le répertoire ssl précédemment créé : C:\wamp\bin\apache\apache2.2.11\conf\ssl

VI. Configuration du fichier httpd-ssl.conf

Chemin du fichier : c:\wamp\bin\apache\apache2.2.11\conf\extra

A. Première modification – Endroit pour stocker le cache des sessions SSL

  •  Trouvez la ligne :
SSLSessionCache "shmcb:C:/Program Files/Apache Software Foundation/Apache2.2/logs/ssl_scache(512000)"
  •  Remplacez la part :
SSLSessionCache "shmcb:C:/wamp/bin/Apache/apache2.2.11/conf/ssl/logs/ssl_scache(512000)"

B. Deuxième modification - Indiquer le chemin vers le certificat

  •  Trouver la ligne :
SSLCertificateFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/server.crt"
  •  Remplacez la part (en adaptant) :
SSLCertificateFile "C:/wamp/bin/Apache/apache2.2.11/conf/ssl/neoflow.crt"

C. Troisième modification - Indiquer le chemin vers la clé

  •  Trouver la ligne :
SSLCertificateKeyFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/server.key"
  •  Remplacez la part (en adaptant) :
SSLCertificateKeyFile "C:/wamp/bin/Apache/apache2.2.11/conf/ssl/neoflow.key"

D. Quatrième modification

  •  Trouver la ligne :
SSLMutex "file:C:/Program Files/Apache Software Foundation/Apache2.2/conf/ssl/logs/ssl_mutex"
  •  Remplacer la part :
SSLMutex default

Il est possible que le paramètre soit déjà configure de cette manière.

E. Cinquième modification - Configuration de l’hôte virtuelle

  •  Trouver le bloc :
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
ServerName localhost:443
ServerAdmin admin@localhost
ErrorLog "C:/Program Files/Apache Software Foundation/Apache2.2/logs/error_log"
TransferLog "C:/Program Files/Apache Software Foundation/Apache2.2/logs/access_log"
  •  Remplacer par (en adaptant) :
DocumentRoot "C:/wamp/www "
ServerName neoflow:443
ServerAdmin admin@neoflow
ErrorLog "C:/wamp/bin/Apache/apache2.2.11/conf/ssl/logs/ssl_error.log"
TransferLog "C:/wamp/bin/Apache/apache2.2.11/conf/ssl/logs/ssl_access.log"

Explication sur les paramètres :

  •  DocumentRoot : Racine du serveur - par défaut en connexion normale (HTTP:80) cela correspond à c:\wamp\www.
  •   ServerName : Nom du serveur et de son port d’écoute (HTTPS : 443 – Port standard)
  •   ServerAdmin : Adresse mail de la personne à contacter en cas de problème.
  •   ErrorLog : Emplacement du journal d’erreurs.
  •   TransferLog : Emplacement du journal d’accès.

 

  F. Sixième modification – Attribution de propriétés sur le dossier racine

  •  Trouver le bloc :
<directory "c:="" program="" files="" apache="" software="" foundation="" apache2.2="" cgi-bin"="">
SSLOptions +StdEnvVars
  •  Modifier par :
<directory "c:="" wamp="" www"="">
SSLOptions +StdEnvVars
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

G. Septième modification – Emplacement du journal des requêtes faites au serveur

  •  Trouver la ligne :
CustomLog "C:/Program Files/Apache Software Foundation/Apache2.2/logs/ssl_request_log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
  •  Remplacer par :
CustomLog "C:/wamp/bin/apache/Apache2.2.x/conf/ssl/logs/ssl_request.log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"

VII. Configuration du fichier httpd.conf

Chemin du fichier : c:\wamp\bin\apache\apache2.2.11\conf

A. Inclure le fichier httpd-ssl.conf

Décommentez la ligne « Include conf/extra/httpd-ssl.conf »

B. Activer le chargement du module SSL

Décommentez la ligne « LoadModule ssl_module modules/mod_ssl.so »

VIII. Configuration du fichier php.ini

Chemin du fichier : c:\wamp\bin\php\php5.3.0

A. Activer le chargement du module OpenSSL

Décommentez la ligne « extension=php_openssl.dll »

IX. Copie des deux DLL – libeay32.dll et ssleay32.dll

Cette option peut être facultative, mais par précaution ou en cas de problème si vous ne l’avez pas fait et que ca ne fonctionne pas, copiez ces deux DLL se situant dans :

C:\wamp\bin\apache\apache2.2.11\bin

…Et collez les dans : C:\Windows\System32

X. Test de la connexion sécurisée (HTTPS)

Saisissez dans votre navigateur l’adresse vers votre serveur, précédée de « https:// » et non « http:// ». Si vous arrivez sur votre page index vous avez réussis avec succès ce tutoriel.

wamp-ssl2

 

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5580.Voir tous les posts

29 thoughts on “Mettre en place une connexion SSL avec WAMP

  • Bonjour, merci pour ton tutoriel qui m’a aidé mais j’ai un soucis.

    J’ai suivi ce que tu expliques quasi à la lettre (avec mes infos) mais à la fin quand je veux me logger sur https://neoflow (mes infos en fait) il ne veux pas ! Par contre sur https://localhost il me dit « Le certificat n’est pas approuvé » donc je mets le certificat dans Firefox … Je rentre mais du coup est-on bien en connection SSL sécurisée ?

    Suivant des indications sur le site Wamp, j’ai en virtual host
    1) localhost
    2) neoflow (avec mes infos)

    Bruno
    Wamp 2.5 – Apache 2.4.9

    Répondre
  • Autant pour moi je n’ai pas fait
    net stop Dnscache

    net start Dnscache

    Peut-être à rajouter dans ton tutoriel
    Éditez `C:\windows\system32\drivers\etc\hosts`

    Le fichier n’a pas d’extension et doit absolument rester sans extension. Méfiez-vous du bloc-notes (Notepad), car il peut essayer d’ajouter une extension `.txt` si vous n’avez pas de meilleure éditeur. Je vous suggère de télécharger Notepad++, c’est gratuit et un très bon éditeur.

    C’est aussi un fichier protégé que vous devez modifier avec des privilèges d’administrateur, il faut donc lancer l’éditeur avec l’option « Exécuter en tant qu’administrateur » Explications Run as Administrator (En Anglais)
    Après édition et ajout du domaine neoflow, le contenu du fichier devrait ressembler à ça :
    127.0.0.1 localhost
    127.0.0.1 neoflow
    ::1 localhost
    ::1 neoflow

    Désolé du dérangement

    Bruno

    Répondre
    • Bonjour Bruno,

      Merci pour votre complément d’infos, il pourra être utile à d’autres personnes.

      A bientôt sur notre site.
      Florian

      Répondre
  • Après avoir suivit toute la procédure, mon server apache ne se lance plus. merci de me venir en aide

    Répondre
    • Bonjour,

      Nous aimerions beaucoup vous venir en aide, mais il nous faudrait plus d’information, message d’erreur, log, fichier de configuration ?

      Merci d’utiliser notre forum, prévu à ce effet, pour que nous puissions vous aider dans votre diagnostique : http://www.it-connect.fr/forum/apache-f19.html?

      Répondre
  • Bonjour,
    je veux tout d’abord vous remerciez pour votre tutoriel .Après avoir suivi toute la procédure, mon server apache ne se lance plus.
    Je trouve rien dans le fichier log et est ce que je dois modifier le fichier openssl.cnf

    Merci de votre aide

    Répondre
  • J’ai suivis a la lettre mais wamp est orange, j’ai le tt deriner wamp 2.4.9 64 bit, quoi faire??
    help me

    Répondre
    • La question date mais pour les prochains visiteurs, cela pourrait être utilie:

      Si votre icône WAMP reste orange cela signifie qu’il y a un problème au niveau soit des modules à charger, soit de la syntaxe que vous avez écrite. Pour le débuggeril faut se mettre en ligne de commande, aller dans c:/wamp/bin/apache/apacheX.Y.Z/bin/ et taper httpd -t
      Vous pourrez ainsi voir les erreurs et les corriger. Quand tout sera bon vous verrez le message « Syntax OK » et vous pourrez alors relancer le serveur.

      En espérant avoir pu vous aider!

      Arthur

      Répondre
      • Merci Arthur,

        Cela m’a bien aidé.
        Petite note : cette commande ne fonctionne pas sous PowerShell, veillez donc à bien utiliser une invite de commande classique.

        Samuel

        Répondre
  • Bonjour
    Bravo pour le tuto très structuré

    J’ai un problème avec l’étape F. La ligne

    était refusée. Message Multiple arguments not (yet) supported

    l’icone de serveur WAMP reste alors Orange

    Je suis passé en tapant

    mais je ne mesure pas l’impact, si ce n’est que ca fonctionne

    Répondre
  • complément (les lignes de codes ont sautées de mon commentaire)

    Je parlais de la ligne
    directory « c:= » » wamp= » » www »= » »

    que j’ai remplacé par
    directory « c:/wamp »

    Répondre
  • Pour Wamp 3.0 – PHP 7.0.3

    http-ssl.conf

    Ne pas mettre la ligne : SSLMutex default

    Modifier CustomLog : CustomLog « C:/wamp/bin/apache/{Apache}/conf/ssl/logs/ssl_request.log » \
    « %t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \ »%r\ » %b »

    Le bloc n’existe pas :
    SSLOptions +StdEnvVars

    Il faut trouver :

    httpd.conf

    dé commenter également : LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

    Voila je crois que je n’ai rien oublié.

    Répondre
  • Bonjour,
    Merci pour le tuto. cela marche bien sur le localhost.
    Je cherche a me connecter a sous domaine qui est configuré dans le fichier httpd-vhosts.conf. J’ai ajouté un dans le fichier httpd-ssl.conf. J’ai l’erreur suivante dans les log :

    Aug 26 16:21:55.146176 2016] [authz_core:error] [pid 6192:tid 1220] [client 127.0.0.1:39465] AH01630: client denied by server configuration: D:/clicTill/myretail/trunk/index.php
    [Fri Aug 26 16:21:55.177201 2016] [authz_core:error] [pid 6192:tid 1220] [client 127.0.0.1:39465] AH01630: client denied by server configuration: D:/clicTill/myretail/trunk/favicon.ico, referer: https://myretail.dev/index.php

    Merci de votre aide.

    Répondre
  • Salut, mon logo wamp reste orange, impossible d’accéder a localhost en https.

    avec httpd -t ==> AH00526: Syntax error on line 73 of C:/wamp/bin/apache/apache2.4.9/conf/extra/httpd-ssl.conf:
    SSLSessionCache: ‘shmcb’ session cache not supported (know names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).

    Une aide serait la bienvenue.

    Cordialement.

    Répondre
  • Bonjour, j’ai suivi votre tuto mais ça plante rapidement chez moi, pouvez-vous m’aider ? Je ne sais pas ce que le prog va chercher sur C:…
    Merci

    E:\wamp\bin\apache\apache2.4.9>openssl genrsa -aes256 -out clef.key 2048
    ‘openssl’ n’est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.

    E:\wamp\bin\apache\apache2.4.9>cd bin

    E:\wamp\bin\apache\apache2.4.9\bin>openssl genrsa -aes256 -out clef.key 2048
    WARNING: can’t open config file: C:\vc11_deps\repo\winlibs_openssl/install_x86/openssl.cnf
    Loading ‘screen’ into random state – done
    Generating RSA private key, 2048 bit long modulus
    ……………+++
    ………………………………..+++
    e is 65537 (0x10001)
    Enter pass phrase for clef.key:
    Verifying – Enter pass phrase for clef.key:IMPOSSIBLE DE TAPER QUOI QUE CE SOIT
    Verify failure
    User interface error
    4420:error:0906906F:PEM routines:PEM_ASN1_write_bio:read key:.\crypto\pem\pem_lib.c:382:

    E:\wamp\bin\apache\apache2.4.9\bin>

    Répondre
  • Bonjour,

    Merci pour le tutoriel. Impeccable, cela fonctionne bien chez moi : Windows 10 / Wamp 3 / PHP7

    Par contre, cela m’affiche que la connexion n’est pas sécurisée. Je dois pour chaque site ajouter une exception pour avoir l’accès.

    Une idée ?

    Merci

    Répondre
  • Bonjour.

    Merci pour le tuto qui nous est très utile, cela marche parfaitement.
    Mais comme le dit Florent juste en haut, quelle est la solution définitive face au message  » la connexion n’est pas sécurisée ».
    Sachant que je dispose d’un serveur Hp Proliant ML310e Gen8 avec S.E Windows Server 2008.

    Merci

    Répondre
  • Ca fonctionne. Il reste le problème de du message bloquant.

    Sinon, pour l’erreur :

    c:/wamp/bin/apache/apache2.4.2/conf/extra/httpd-ssl.conf:
    CustomLog takes two or three arguments, a file name, a custom log format string or format name, and an optional « env= » or « expr= » clause (see docs)

    La ligne d’erreur :

    CustomLog « C:/wamp/bin/apache/apache2.4.2/conf/ssl/logs/ssl_request.log » « %t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x « %r » %b »

    La réponse est :

    Échappes les quotes du format. « %t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \ »%r\ » %b »

    Répondre
  • Merci pour ce tutoriel très complet et aux personnes ayant laissé des commentaires utiles 🙂

    Répondre
  • Bonjour,

    Déjà merci pour ce tutoriel et tout les personnes qui ont participé à la résolution de plusieurs problèmes.

    Je rencontre encore un problèmes au niveau de la syntaxe tout est OK mais mon icône reste orange et mon site n’est pas accessible.

    Version 3.1.0 64bit de WAMP.

    Répondre
  • Bonjour,

    Pour mois tout es ok sauf que wamp ne ce lance toujours pas voici le message d’erreur dans mon fichier error.log :
    [Tue Feb 13 16:29:42.232825 2018] [ssl:emerg] [pid 1276:tid 452] AH02577: Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file C:/wamp64/bin/apache/apache2.4.27/conf/ssl/clef.key)
    [Tue Feb 13 16:29:42.232825 2018] [ssl:emerg] [pid 1276:tid 452] AH02564: Failed to configure encrypted (?) private key srvsi3:443:0, check C:/wamp64/bin/apache/apache2.4.27/conf/ssl/clef.key
    [Tue Feb 13 16:29:42.232825 2018] [ssl:emerg] [pid 1276:tid 452] SSL Library Error: error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag
    [Tue Feb 13 16:29:42.232825 2018] [ssl:emerg] [pid 1276:tid 452] SSL Library Error: error:0D08303A:asn1 encoding routines:asn1_template_noexp_d2i:nested asn1 error
    [Tue Feb 13 16:29:42.232825 2018] [ssl:emerg] [pid 1276:tid 452] SSL Library Error: error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag
    [Tue Feb 13 16:29:42.232825 2018] [ssl:emerg] [pid 1276:tid 452] SSL Library Error: error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error (Type=RSA)
    [Tue Feb 13 16:29:42.232825 2018] [ssl:emerg] [pid 1276:tid 452] SSL Library Error: error:04093004:rsa routines:old_rsa_priv_decode:RSA lib
    [Tue Feb 13 16:29:42.232825 2018] [ssl:emerg] [pid 1276:tid 452] SSL Library Error: error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag
    [Tue Feb 13 16:29:42.232825 2018] [ssl:emerg] [pid 1276:tid 452] SSL Library Error: error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error (Type=PKCS8_PRIV_KEY_INFO)

    Répondre
  • Bonjour
    J’utilise wamp avec apache 2.4.37 et php7.2.14.
    J’ai suivi toute la démarche à la lettre jusqu’à la fin y compris les différentes corrections.
    Mon problème est que apache ne démarre pas et quand je tape la commande httpd -t dans invite de commande, j’ai le message OK, finalement je sais ou se trouve le problème.
    Merci de m’aider

    Répondre
    • Bonjour,
      C’est peut être un conflit de numéro de port. Vérifie qu’une application comme skype n’est pas ouverte car elle utilise le même port.
      Deuxième possibilité: si t’es sur Windows10, tu peux désactiver le « Service de publication Word Wide Web » et mettre son démarrage en « Manuel » pour que ça ne se redémarre plus automatiquement. Procédure: dans une fenêtre executer (Win + r) tape dcomcnfg.exe–>Services(local)–>Service de publication Word Wide Web

      En espérant que tu puisses trouver la solution à ton problème !

      Répondre
  • Bonjour,

    Merci pour ce tutoriel.

    J’ai tout suivi à la lettre, en dé commenter également : LoadModule socache_shmcb_module modules/mod_socache_shmcb.so sinon cela ne fonctionnait pas.

    J’ai également dû modifier pour sinon j’avais un message d’erreur.

    Maintenant, je vois que le http est toujours fonctionnel (c’est une bonne chose car en prod). Le HTTPS fonctionne depuis le serveur local (en me mettant d’abord un message comme quoi ce n’est pas sécurisé …) mais pas depuis l’extérieur.

    Y a t’il une manipulation à faire sur le Reverse Proxy IIS pour rendre effective cette connexion via internet ?

    Merci d’avance !

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.