En fonction de la taille de votre boutique, du public visé ou tout simplement parce que vous voulez sécuriser votre Magento, il est possible de chiffrer les données sensibles lorsqu’elles sont envoyées au serveur afin d’éviter que celles-ci ne soient interceptées.
Nous pensons notamment aux informations du compte client ou au tunnel de commande. Il est possible de faire cela en utilisant un certificat SSL.
Cet article comporte deux parties :
- comment installer le certificat sur un serveur Apache
- et comment le mettre en place sur un boutique Magento
Installer un certificat SSL sur un serveur Apache
Tout d’abord, il vous faut bien sûr un certificat SSL. Oubliez tout de suite les certificats auto-signés que vous générez vous-mêmes. Le navigateur de vos visiteurs affichera un message d’avertissement indiquant que le certificat n’est pas approuvé et qu’il n’est pas conseillé de continuer.
Vous devrez donc vous procurez un « vrai » certificat SSL. Si vous faites des recherches, vous verrez qu’il y en a à tous les prix, mais personnellement nous conseillons ceux de RapidSSL qui ne sont pas trop chers et qui fonctionnent correctement.
Nous poursuivrons donc l’exemple avec un certificat pris chez RapidSSL, mais c’est la même démarche quel que soit le certificat.
Installer OpenSSL
Le premier prérequis est d’avoir OpenSSL installé sur votre serveur.
Pour cela, télécharger la dernière version sur le site officiel. Envoyez l’archive sur votre serveur et décompressez-la avec la commande :
tar -xzvf openssl-1.0.0g.tar.gz
Puis installez OpenSSL avec les commandes suivantes :
cd openssl-1.0.0g sh config -fPIC make make install
Installer le module Apache mod_ssl
Si vous êtes sur un serveur Apache, il faut installer l’extension mod_ssl. Bien sûr, si vous l’avez déjà installée, passez à l’étape suivante. Sinon, téléchargez l’extension sur le site officiel.
Prenez la version compatible avec votre version d’Apache. Dans l’exemple, nous utiliserons la vesion 1.3.41
Envoyez l’archive sur votre serveur et décompressez-la avec la commande
tar -xzvf mod_ssl-2.8.31-1.3.41.tar.gz
Installer ensuite mod_ssl avec les commandes suivantes :
cd mod_ssl-2.8.31-1.3.41 ./configure --with-apache=../apache_1.3.14
Votre serveur est prêt !
Générer une Certificate Signing Request (CSR)
Avant d’acheter le certificat, il faut générer à partir de votre serveur une demande de certificat signé.
Une fois OpenSSL et le mod_ssl pour Apache installés, rendez-vous dans le répertoire d’installation d’Apache, dans le dossier conf/ssl.key. Dans notre exemple, apache était dans /usr/local/apache.
cd /usr/local/apache/conf/ssl.key
Générez une clé RSA avec la commande suivante (en prenant bien soin de changer la valeur monnomdedomaine par le votre) :
openssl genrsa -des3 -out monnomdedomaine.key 2048
Le serveur va alors vous demander une passphrase. Ne la perdez surtout pas !
Enfin, générez la CSR voulue (en remplaçant toujours monnomdedomaine par la bonne valeur) :
openssl req -new -key monnomdedomaine.key -out monnomdedomaine.csr
La passphrase que vous avez entrée précédemment pour la clé RSA vous sera alors demandée.
Il vous faudra ensuite fournir plusieurs informations telles que le pays, la ville etc.
- Country : Votre pays en deux lettres (FR pour la France)
- State or province : Votre région
- City or locality : Votre ville
- Organization name : Le nom de votre société
- Organizational unit name : L’unité d’organisation (Ecommerce par exemple)
- Common name : c’est votre nom de domaine, par exemple www.monsite.com
openssl req -noout -text -in monnomdedomaine.csr
nano monnomdedomaine.csr
Installer le certificat
Après une série de vérifications diverses (le propriétaire du serveur reçoit un email de vérification de la part du fournisseur du certificat, vérification des informations données, etc), vous aurez (enfin) votre certifical SSL.
Enregistrer donc votre certificat sous le nom :
certificat.crt
Assurez-vous bien d’avoir pris les lignes de début et de fin (BEGIN et END) avec les 5 tirets de chaque côté et pas d’espace.
Vous devriez aussi avec un certificat nommé intermediate. Comme pour le premier, nommez-le intermediate.crt avec les lignes de début et de fin.
Envoyez les deux fichiers sur votre serveur.
Ouvrez maintenant votre fichier httpd.conf.
nano /usr/local/apache/conf/httpd.conf
Cherchez l’endroit où il est question de Virtual Host et créez-en un nouveau pour ajouter les informations concernant votre certificat SSL en copiant celui existant (qui devrait être sur le port 80). Cela devrait ressembler à ça :
<VirtualHost ADRESSE_IP:443> ... SSLEngine on SSLCertificateFile /usr/local/apache/conf/ssl.key/crt/certificat.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/monnomdedomaine.key SSLCertificateChainFile /usr/local/apache/conf/ssl.key/crt/intermediate/crt
N’oubliez pas de changer le port pour mettre le port 443 (qui est celui par défaut pour le SSL).
Si l’instruction SSLCertificateChainFile ne fonctionne pas, essayez avec SSLCACertificateFile.
Redémarrez Apache pour finaliser l’opération.
/etc/init.d/apache restart
Configurer Magento pour passer le compte client et le tunnel de commande en HTTPS
Vous pouvez déjà tester que l’adresse https://www.votresite.com fonctionne. Cela ne doit afficher aucun message d’avertissement et votre navigateur doit afficher un petit logo, synonyme de HTTPS.
Par exemple sous Chrome pour le site de Google :
![]()
Si cela fonctionne vous pouvez donc continuer.
Allez dans le back-office de votre Magento, dans Système > Configuration > General > Web > Securisé et assurez vous que l’URL de base est bien https://www.votresite.com/, puis activez l’option Utiliser des URLs sécurisées pour le front office (mon compte et passage de commande).
Voilà, rafraîchissez le cache de votre boutique et vous devriez voir que les pages du compte et du panier sont sécurisées !
N’hésitez pas à poser des questions en commentaire si certains passages ne sont pas clairs !
Erreurs possibles
Votre navigateur indique qu’il y a du contenu non-sécurisé sur une page sécurisée
Cette erreur peut se traduire différemment suivant le navigateur, par une simple icone rouge, une dialog box ou autre. Néanmoins, le message reste plus ou moins le même : vous avez du contenu non-sécurisé sur une page sécurisé.
De quoi cela provient-il ? En général du contenu inclut dans la page, tel que :
- les fichiers javascript
- les fichiers CSS
- les images
- les appels de scripts externes (Facebook, Twitter, Google etc.)
Google Chrome indique du contenu non-sécurisé alors que les autres navigateurs ne l’indiquent pas
Je ne sais pas vraiment pourquoi, mais j’ai déjà eu une erreur indiquant du contenu non-sécurisé seulement sur Google Chrome et pas sur les autres navigateurs. Après quelques heures de recherche, j’ai finalement laissé comme cela, et quelques jours plus tard, l’erreur n’apparaissait plus. Comme s’il avait fallu un peu de temps ou comme s’il y avait une sorte de cache.
Continuer la lecture :
La surcharge d'une classe abstraite dans Magento ne se fait pas comme ...
Le logiciel Store Manager for Magento est très pratique car il permet ...
Cet article a pour but de recenser comment créer des attributs Pro...

![Certificat SSL autosigné certificat ssl autosigne small [Magento] Mettre en place un certificat SSL](http://www.ph2m.com/wp-content/uploads/2012/02/certificat-ssl-autosigne_small.png)




