Créer un site en local avec HTTPS.

En partant de l’installation effectuée soit en PHP 5.x ou PHP 7.x, le but est de créer un site en local avec HTTPS par exemple https://localtracfoil.com/.

Pour mettre en place un site local en HTTPS sous Apache 2 vous avez le choix entre :
- générer un certificat auto-signé SSL
- utiliser les certificats SSL par défaut (solution choisie ici par simplicité)

Par défaut Apache 2 contient deux fichiers pré-configurés :
000-default.conf et default-ssl.conf qui pointent tous les deux répertoire /var/www .
Le premier écoute sur le port 80 (HTTP) et le second sur le port 443.
- 000-default.conf est actif ce qui permet d’accéder à la page It Works !
Vous remarquerez aussi qu’il n’y a pas eu besoin de générer de certificat SSL. En effet, il y en a déjà un par défaut (valable 10 ans) que l'on peut voir en regardant dans le fichier default-ssl.conf situé dans /etc/apache2/sites-available
extrait :
# A self-signed (snakeoil) certificate can be created by installing
# the ssl-cert package. See
# /usr/share/doc/apache2/README.Debian.gz for more info.
# If both key and certificate are stored in the same file, only the
# SSLCertificateFile directive is needed. 
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key


Nota suivant la distribution le logiciel éditeur de texte gedit peut être remplacer par mousepad ou autre.

- Créer un dossier home/utilisateur/sites/dossier_https (par exemple)

- Ajouter un fichier phpinfo.php comprenant <?php phpinfo(); ?> ou un fichier index.html pour tester.

- Création du VirtualHost dans /etc/apache2/sites-available
se rendre dans le dossier
cd /etc/apache2/sites-available
Copier le fichier original 000-default.conf en tracfoil.local.conf
>sudo cp 000-default.conf tracfoil.local.conf
Editer pour modifier ce fichier
gksudo gedit /etc/apache2/sites-available/tracfoil.local.conf
Supprimer le contenu pour mettre ce qui suit en fonction de vos dossiers

<IfModule mod_ssl.c>
<VirtualHost localtracfoil.com:443>
ServerAdmin sites@localhost
ServerName localtracfoil.com
DocumentRoot "/home/utilisateur/sites/dossier_https"
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<Directory "/home/utilisateur/sites/dossier_https">
Require all granted
#pour rewrite
AllowOverride All
</Directory>
</VirtualHost>
</IfModule>

Puis activer les modifications du fichier tracfoil.local.conf par
sudo a2ensite tracfoil.local.conf


Ensuite activer le module SLL d'apache
sudo a2enmod ssl

ce qui donne
Enabling module ssl.

See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.


Modifier le fichier hosts pour ajouter le domaine
gksudo gedit /etc/hosts

ajouter
127.0.0.1     localtracfoil.com


Et enfin relancez apache2 :
sudo service apache2 restart



Vérifier l’accès en HTTPS sur votre navigateur
https://localtracfoil.com/phpinfo.php

- Vous allez avoir une alerte
La connexion n’est pas sécurisée
localtracfoil.com uses an invalid security certificate. Error code: SEC_ERROR_UNKNOWN_ISSUER

- Il faut donc Ajouter une exception
local_https

Vous êtes prêt à tester votre CMS en HTTPS.




Crédits
- Configurer le SSL avec Apache 2
- Créer un certificat SSL autosigné pour le développement en local
- Documentation Apache

Document http://jc.etiemble.free.fr/abc/ JCE - version du 01/05/2017-0 CC_licence



Page précédente : Debian9+PHP7.0
Page suivante : SVN Windows