-
Notifications
You must be signed in to change notification settings - Fork 0
tp6
PasRP-Theo edited this page Jun 5, 2025
·
1 revision
Un certificat nécessite trois étapes :
- Créer une paire de clés cryptographiques (format .key)
- Générer une demande de certificat (format CSR)
- Signer le certificat (format CRT)
sudo openssl req -nodes -newkey rsa:4096 -keyout certificate/nginx-selfsigned.key -out certificate/nginx-selfsigned.csrOptions expliquées :
-
req: demande de certificat (CSR) -
nodes: ne pas chiffrer la clé privée avec DES -
newkey: créer une nouvelle clé -
keyout: nom du fichier pour la clé -
out: fichier contenant la demande de certificat
# Visualiser la clé privée
sudo openssl rsa -noout -text -in certificate/nginx-selfsigned.key
# Visualiser la demande de certificat
sudo openssl req -noout -text -in certificate/nginx-selfsigned.csrsudo openssl x509 -signkey certificate/nginx-selfsigned.key -in certificate/nginx-selfsigned.csr -req -days 365 -out certificate/nginx-selfsigned.crtopenssl x509 -noout -text -in certificate/nginx-selfsigned.crtNote : Dans un certificat auto-signé, les champs "Issuer" et "Subject" sont identiques.
server {
listen 80;
server_name www.lx-y.ephec-ti.be.;
return 301 https://$host$request_uri;
}server {
listen 443 ssl;
server_name www.lx-y.ephec-ti.be.;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
# Autres configurations...
}Problème avec les certificats auto-signés : Les navigateurs affichent un avertissement car le certificat n'est pas signé par une autorité de certification reconnue.
apt install certbot python3-certbot-nginxcertbot --nginx -d www.lx-y.ephec-ti.beCertbot effectue automatiquement :
- Génération des clés publique et privée
- Envoi de la demande de certificat au CA
- Réception des challenges (tokens uniques)
- Réponse au challenge (généralement http-01)
- Récupération du certificat signé
- Modification de la configuration nginx
cat /var/log/letsencrypt/letsencrypt.logÀ rechercher dans les logs :
- Les trois challenges ACME proposés
- Le token utilisé
- La configuration nginx temporaire
- L'URL du token sur le serveur
Les certificats sont généralement stockés dans :
/etc/letsencrypt/live/www.lx-y.ephec-ti.be/
openssl x509 -noout -text -in /etc/letsencrypt/live/www.lx-y.ephec-ti.be/cert.pemcertbot renew- Ajouter l'installation de certbot dans le Dockerfile
- Monter
/etc/letsencrypt/sur un volume pour la persistance
certbot certonly --manual --preferred-challenges=dns --email <votre_email> --agree-tos -d *.lx-y.ephec-ti.be- Certbot vous donnera un token à placer dans un record TXT
- Créez le record :
_acme-challenge.lx-y.ephec-ti.be - Vérifiez avec dig :
dig TXT _acme-challenge.lx-y.ephec-ti.beAu lieu de définir les certificats dans chaque virtual host :
# Configuration globale
ssl_certificate /etc/letsencrypt/live/lx-y.ephec-ti.be/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/lx-y.ephec-ti.be/privkey.pem;
server {
listen 443 ssl;
server_name www.lx-y.ephec-ti.be;
# Pas besoin de redéfinir les certificats
}
server {
listen 443 ssl;
server_name blog.lx-y.ephec-ti.be;
# Pas besoin de redéfinir les certificats
}- Changements dans la gestion de l'entreprise
- Compromission de la clé privée
- Informations du certificat modifiées
certbot revoke --cert-name example.com --reason keycompromiseRaisons possibles :
-
keycompromise: clé privée compromise -
superseded: remplacé par un nouveau certificat -
cessationofoperation: arrêt du service
- Certificats auto-signés : Sécurisent la communication mais ne sont pas reconnus par les navigateurs
- Let's Encrypt : Autorité de certification gratuite et automatisée
- Certificats wildcard : Couvrent tous les sous-domaines mais nécessitent un challenge DNS
- Renouvellement : Les certificats Let's Encrypt expirent tous les 90 jours
- Docker : Monter les volumes pour la persistance des certificats
# Vérifier la configuration nginx
nginx -t
# Recharger nginx
nginx -s reload
# Vérifier l'expiration d'un certificat
openssl x509 -noout -dates -in certificat.crt
# Vérifier la connectivité HTTPS
openssl s_client -connect www.lx-y.ephec-ti.be:443