Si vous avez besoin d’activer la partie SSL. Pour cela vous allez avoir besoin de certificats. Dans mon cas je ne vais pas en acheter auprès d’une autorité de certification, car je ne vais rien exposer publiquement.
Mkcert est un outil facile d’utilisation qui va se charger de tout. Il génère notre autorité de certification, qui servira à signer le(s) certificat(s). Il suffira de déployer sa clé sur toutes les machines clientes pour que nous n’ayons aucune erreur du type “self signed…”
Pour installer mkcert facilement nous allons avoir besoin de ASDF, Vous trouverez l'installation de celui-ci ici.
On va utiliser asdf :
asdf plugin add mkcert https://github.com/salasrod/asdf-mkcert.git
asdf install mkcert latest
asdf global mkcert latest
Une simple commande va générer notre nouvelle autorité de certification, sans saisir une seule information.
mkcert -install
Le certificat sera généré dans un répertoire, que vous pouvez localiser avec la commande :
mkcert -CAROOT
/root/.local/share/mkcert
Affichons le contenu :
ls -l /root/.local/share/mkcert
total 8
-r-------- 1 root root 2488 févr. 14 15:54 rootCA-key.pem
-rw-r--r-- 1 root root 1635 févr. 14 15:54 rootCA.pem
Maintenant que nous avons notre CA, nous allons générer notre certificat.
mkcert 'artefacts.workshop.local' localhost 127.0.0.1 ::1
Created a new certificate valid for the following names
- "artefacts.workshop.local"
- "localhost"
- "127.0.0.1"
- "::1"
Le certificat se retrouve dans le dossier où vous avez exécuté la commande mkcert. On se retrouve avec deux fichiers :
ls -l
total 8
-rw------- 1 root root 1704 15 mars 15:47 artefacts.workshop.local+3-key.pem # ssl_certificate_key
-rw-r--r-- 1 root root 1529 15 mars 15:47 artefacts.workshop.local+3.pem # ssl_certificate
On va simplement installer nginx, sur notre machine et le configurer avec notre clé (remplacer les noms des fichiers du certificat avec les vôtres)
sudo su
dnf install -y nginx
systemctl enable nginx
systemctl restart nginx
cp artefacts.workshop.local+3.pem /etc/ssl/certs
cp artefacts.workshop.local+3-key.pem /etc/ssl/private
cat <<EOF >>/etc/nginx/conf.d/artefacts.conf
server {
listen 80;
server_name artefacts.workshp.local;
return 301 https://$server_name$request_uri;
root /var/www/html;
}
server {
listen *:443 ssl http2;
server_name artefacts.workshop.local;
ssl_certificate /etc/ssl/certs/artefacts.workshop.local+3.pem;
ssl_certificate_key /etc/ssl/private/artefacts.workshop.local+3-key.pem;
root /var/www/html;
}
EOF
echo 127.0.0.1 artefacts.workshop.local>>/etc/hosts
echo Test >>/var/www/html/index.html
Faite attention à la distribution que vous utilisez. Pour ma part je travail sur Almalinux 8.5.
Il ce peurt aussi que le répertoire/etc/ssl/private/et/var/www/html/n'existe pas. Créez les.
On teste :
curl https://artefacts.workshop.local
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
Normal, nous n’avons pas ajouté autorité de certifications.
sudo cp ~/.local/share/mkcert/rootCA.pem /usr/local/share/ca-certificates/rootCA.crt
sudo apt install -y ca-certificates
sudo update-ca-certificates
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
sudo cp ~/.local/share/mkcert/rootCA.pem /etc/pki/ca-trust/source/anchors/rootCA.crt
sudo dnf install -y ca-certificates
sudo update-ca-trust
On teste :
curl https://artefacts.workshop.local
Test
Il faut convertir le certificat :
openssl pkcs12 -inkey rootCA-key.pem -in rootCA.pem -export -out myrootCA.pfx
Enter Export Password:
Verifying - Enter Export Password:
A vous de voir si vous mettez un mot de passe sur votre certificat.
Copiez le fichier myrootCA.pfx sur votre machine Windows. Touche [windows], certificat

Allez dans le répertoire Autorités de certification racines de confiance/Certificats. Puis clique droit, Toutes les taches > Importer Sélectionner le fichier myrootCA.pfx. Entrez le mdp si besoin.

On teste :

Plutôt que de créer autant de certificats que d’applications je vais utiliser un certificat wildcard, c’est-à-dire avec une '*'. L’astuce, c’est de mettre le nom de domaine entre quote :
mkcert "*.workshop.local"
Created a new certificate valid for the following names 📜
- "*.workshop.local"
Reminder: X.509 wildcards only go one level deep, so this won't match a.b.workshop.local ℹ️
The certificate is at "./_wildcard.workshop.local.pem" and the key at "./_wildcard.workshop.local-key.pem" ✅
Vous trouverez le certificat dans le répertoire /< votre home >/.local/share/mkcert