Faire un site avec un certificat auto-signé

Configuration de Base :

Par défaut quand on créer un site web il fonctionne en HTTP c’est a dire sur le port 80 nous allons donc mettre en place un certificat auto -signé. Le problème de ce genre de certificat est qu’il n’ai pas délivré par une autorité de certification reconnue (car on ce le délivre nous-même) mais il permet quand même d’accéder au site en HTTPS c’est a dire via le port 443.

outils nécessaire : 1 serveur sous Debian ou Ubuntu et une connexion internet.

Tout d’abord nous allons installer un serveur web, sur votre serveur entrer les commandes suivante :

apt-get install apache2 #serveur HTTP
apt-get install mysql-server#installation du serveur de base de donnée
apt-get install phpmyadmin #utilitaire de gestion graphique du serveur mysql
apt-get install php5 #installation du module php pour que le php soit compris par le serveur

nous avons donc notre site web avec une page par défaut (ici une page disant « Hello World » :

site sans cryptage

nous pouvons voir ici le texte de la page mais aussi qu’il n’y a pas de cryptage en effet quand un certificat est actif on voit un cadenas au début de la barre d’adresse :

site avec cryptage

Création du certificat :

Nous commençons par générer la bi-clé RSA, qui peut être protégée par une passphrase.

cd /etc/apache2/
mkdir ssl
cd ssl
openssl genrsa -out apache.key 1024

Nous générons ensuite le certificat auto-signé

openssl req -new -x509 -days 365 -key apache.key -out apache.crt

explication de la commande :

* -x509 : génération d’un certificat autosigné, et non d’une simple requête
* -days 365 : le certificat est valable 365 jours
* -key server.key : la clé publique est extraite de la bi-clé précédente
* -out server.crt : le certificat est copié

Répondez aux question posé pour la génération du certificat, exemple pour moi voila ce que j’ai mis :

Generation d'un certificat auto-signé

A noter qu’il faut faire attention au champ Common Name (eg, YOUR name) : Il faut mettre le même nom que le serveur, pour mon cas GSB.com . Sinon, nous aurons un message comme quoi le nom du propriétaire du certificat et du site ne correspond pas.

Pour vérifier le bon usage du certificat :

openssl x509 -in apache.crt -text -noout

Le résultat que j’ai pour mon certificat :

Verification bon usage du certificat

Pour l’instant nous avons un certificat et un serveur web pourtant quand j’essaye de me connecter au serveur j’ai une erreur (« Page Web Inaccessible « ) et c’est normal, en effet on doit intégrer le certificat dans le fichier de configuration de notre site.

Configuration du site Web :

Ici j’utiliserais le fichier de configuration par défaut. Il nous faut donc éditer le fichier de configuration par défaut de notre serveur Web et activer le module SSL.

activation du module SSL :

a2enmod ssl

Editer le fichier de configuration de votre site Web en ajoutant les lignes suivantes :

nano /etc/apache2/sites-enabled/000-default.conf
<virtualhost *:443>
        ServerName serveurweb.dom
        DocumentRoot /var/www/html
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</virtualhost>

il faut maintenant redémarrer Apache :

/etc/init.d/apache2 restart

Accès au site en HTTPs :

Si vous rentrer dans la barre d’url d’un navigateur « https:// » suivi de l’ip de votre serveur vous arriverez sur une page du genre :

erreur Nav

ce message d’alerte est du au fait que le navigateur ne reconnait pas cette autorité de certification et on ne peut pas changer ça pour les utilisateurs qui arriveront sur votre site le seul moyen d’y remédier est d’obtenir un certificat via une autorité de certification agréé par le navigateur. Mais alors avons nous fais tout ça pour rien ? eh bien non il faut dire au  navigateur que l’on fait confiance au certificat.Dans ce tuto je vous montrerais la démarche pour chrome dans les autres navigateur elle est similaire et toute aussi intuitive.

-Cliquez sur « Paramètres avancés »

-puis sur « Continuer vers le site 192.168.28.22 (dangereux) » tout en bas

vous avez ensuite accès a votre site en HTTPs, vous pourriez me demander légitimement pourquoi un cadenas rouge alors que plus haut je vous indiquait que le cadenas étais vert quand le chiffrement SSL fonctionnait, en faite le navigateur met un cadenas rouge car il ne reconnait pas le certificat.

accès secu

 

Auteur : Brice Harismendy.

Laisser un commentaire

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