Certificats SSL - Paramétrage sous Apache
Dans cette page nous allons décrire la mise en place de certificats auto-signés et de certificats générés par Let'sEncrypt et leur paramétrage au sein d'Apache.
1. Certificat auto-signé
Plusieurs cas de figure sont envisageables et décrits dans cette page :
- Paramétrage d'un certificat existant
- Création et paramétrage d'un certificat auto-signé (sans autorité de certification)
- Création d'une autorité de certification et d'un certificat auto-signé
Note 1 : Dans le cas d'un certificat auto-signé sans autorité de certification, l'application fonctionnera via HTTPS mais le navigateur Web indiquera que le site n'est pas un site de confiance. Il faudra alors valider l'exception au niveau de la page du navigateur pour accéder à l'application QALITEL.
Note 2 : Pour l'exemple, nous considérerons le package SCOQI_FULLWEB contenant l'ensemble de l'environnement nécessaire au fonctionnement des applications QALITEL. Les chemins seront donc à adapter selon la version de ce package ou si vous disposez d'un Apache installé séparément.
Toutes les lignes de commande seront à saisir dans la console DOS de votre serveur.
Le répertoire d'apache contenant OpenSSL.EXE est le suivant : C:\scoqi_fullweb\Apache2.4.39Win64\bin
On se placera donc dans ce répertoire pour y exécuter les commandes qui vont suivre.
On créera un répertoire "certificats" dans le répertoire d'Apache (C:\scoqi_fullweb\Apache2.4.39Win64\certificats) pour y stocker les différents fichiers qui seront créés.
1.1. Création et paramétrage d'un certificat auto-signé (sans autorité de certification)
1.1.1. Génération de la clé RSA
Pour générer une clé avec mot de passe
openssl genrsa -aes256 -out ..\certificats\qalitel.key 4096
Si vous souhaitez retirer la demande de mot de passe, entrez la commande ci-dessous :
openssl rsa -in qalitel.key -out ..\certificats\qalitel.key
Pour générer une clé sans mot de passe (solution que nous adoptons) :
openssl genrsa -out ..\certificats\qalitel.key 4096
1.1.2. Génération du certificat auto-signé
openssl req -new -x509 -nodes -sha1 -key ..\certificats\qalitel.key -out ..\certificats\qalitel.crt -days 36500 -config ..\conf\openssl.cnf
1.1.3. Modification des fichiers de configuration d'Apache
Dans le fichier HTTPD.CONF (C:\scoqi_fullweb\Apache2.4.39Win64\conf\httpd.conf), décommentez les 2 lgines mentionnées ci-dessous (supprimez le signe #) :
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
Dans le fichier HTTPD-SSL.CONF (C:\scoqi_fullweb\Apache2.4.39Win64\conf\extra\httpd-ssl.conf), effectuez les modificaitons suivantes :
DocumentRoot "c:/scoqi_fullweb/www/"
ServerName localhost:443
ServerAdmin scoqiCette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.">@scoqi.fr
ErrorLog "C:/scoqi_fullweb/Apache2.4.39Win64/logs/ssl_error.log"
TransferLog "C:/scoqi_fullweb/Apache2.4.39Win64/logs/ssl_access.log"
SSLCertificateFile "C:/scoqi_fullweb/Apache2.4.39Win64/certicats/qalitel.crt"
SSLCertificateKeyFile "C:/scoqi_fullweb/Apache2.4.39Win64/certificats/qalitel.key"
puis paramétrez dans ce même fichier la balise <Directory> ou l'Alias correspondant à votre installation :
alias /scoqi "c:/scoqi_fullweb/www"
<Directory "c:/scoqi_fullweb/www">
AllowOverride all
Options FollowSymLinks
directoryindex index.php
Require all granted
</Directory>
Pour vérifier la configuration (erreurs de syntaxe notamment), entrez la commande suivante :
httpd -t
Rédémarrez Apache puis lancez l'application QALITEL. Vous aurez alors un message vous informant que la connexion n'est pas sécurisée.
Il vous faudra alors autoriser l'exception
1.2. Création d'une autorité de certification et d'un certificat auto-signé
Il est nécessaire d'initialiser la variable d'environnement suivante :
OPENSSL_CONF C:\scoqi_fullweb\Apache2.4.39Win64\conf\openssl.cnf
Ouvrir ensuite un Terminal et se placer dans le répertoire contenant le programme OpenSSL
cd C:\scoqi_fullweb\Apache2.4.39Win64\bin
Lancer ensuite le programme "openssl"
Génération de la clé RSA 4096 pour le ROOT CA. Cette clé sera stockée dans certificats/ca.key
(Pour protéger cette clé avec un mot de passe, il faut ajouter -des3 )
genrsa -out ..\certificats\ca.key 4096
Création du certificat auto-signé ROOT CA qui sera stocké dans le fichier ca.crt
req -new -x509 -days 1826 -key ..\certificats\ca.key -out ..\certificats\ca.crt
(Le nombre de jours 1826 correspond à une durée de validité de 5 ans)
Création du subordonate CA
genrsa -out ..\certificats\ia.key 4096
Sortir d'OpenSSL (avec la commande "exit") et y ré-entrer pour la poursuitedes commandes sinon avec la version 1.1.0 d'OpenSSL il y a une erreur "Problem créeating object tsa_ploicy1=1.2.3.4.1"
Faire la demande de certificat pour le subordonate CA :
req -new -key ..\certificats\ia.key -out ..\certificats\ia.csr
(Ne rien entrer dans les 2 derniers "extra" attributes)