Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| linux:nginx [17-10-2025 10:18] – edmc73 | linux:nginx [10-07-2026 19:42] (Version actuelle) – [Convertir pour le smartphone (.p12)] edmc73 | ||
|---|---|---|---|
| Ligne 74: | Ligne 74: | ||
| dpkg -i geoipupdate_7.1.0_linux_amd64.deb | dpkg -i geoipupdate_7.1.0_linux_amd64.deb | ||
| - | < | + | < |
| # configuration | # configuration | ||
| vi / | vi / | ||
| Ligne 105: | Ligne 105: | ||
| Pour Nginx | Pour Nginx | ||
| - | < | + | < |
| #Fichier de config pour spécifier l' | #Fichier de config pour spécifier l' | ||
| vi / | vi / | ||
| Ligne 125: | Ligne 125: | ||
| apt install mmdb-bin | apt install mmdb-bin | ||
| - | < | + | < |
| mmdblookup --file / | mmdblookup --file / | ||
| Ligne 213: | Ligne 213: | ||
| Config pour restreindre par pays | Config pour restreindre par pays | ||
| - | < | + | < |
| server{ | server{ | ||
| server_name toto.com; # managed by Certbot | server_name toto.com; # managed by Certbot | ||
| Ligne 253: | Ligne 253: | ||
| </ | </ | ||
| + | |||
| + | ===== Authentification par Certificat Client (TLS Mutual Auth) ===== | ||
| + | |||
| + | Permet de sécuriser l' | ||
| + | |||
| + | ==== Création du notre Autorité de Certification (CA) ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Générer la clé de l' | ||
| + | openssl genrsa -out ca.key 4096 | ||
| + | # Créer le certificat de l' | ||
| + | openssl req -new -x509 -days 3650 -key ca.key -out ca.crt | ||
| + | </ | ||
| + | |||
| + | Quand la commande vous demande les informations, | ||
| + | * Country Name : FR | ||
| + | * Organization Name : Ma Maison | ||
| + | * Common Name : Mon-Autorite-CA (Utilisez un nom qui indique clairement que c'est le " | ||
| + | ==== Création du certification pour le client ==== | ||
| + | On génère une clé spécifiquer pour le client, signée par le CA. | ||
| + | |||
| + | Dans l' | ||
| + | <code bash> | ||
| + | # Générer la clé du smartphone | ||
| + | openssl genrsa -out smartphone.key 4096 | ||
| + | |||
| + | # Créer la demande de signature | ||
| + | openssl req -new -key smartphone.key -out smartphone.csr | ||
| + | |||
| + | # Signer le certificat avec votre CA | ||
| + | # Notez qu'on défini ici un numéro de série 01 | ||
| + | openssl x509 -req -days 365 -in smartphone.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out smartphone.crt | ||
| + | </ | ||
| + | |||
| + | C'est ici qu'il faut être vigilant : | ||
| + | * Country Name : FR | ||
| + | * Organization Name : Ma Maison (Le même que le CA, c'est mieux). | ||
| + | * Common Name : Smartphone-Jean (Il doit être différent du CN de l' | ||
| + | ==== Convertir pour le smartphone (.p12) ==== | ||
| + | < | ||
| + | openssl pkcs12 -export -out smartphone.p12 -inkey smartphone.key -in smartphone.crt -certfile ca.crt | ||
| + | </ | ||
| + | Un mot de passe sera demandé, il permet de sécuriser le fichier car il contient à la fois le certificat et sa clé privée. | ||
| + | |||
| + | Pour lire le contenu de ce fichier | ||
| + | openssl pkcs12 -in smartphone.p12 -info -nodes | ||
| + | |||
| + | |||
| + | Envoyez ce fichier .p12 à votre téléphone et installez-le dans les '' | ||
| + | |||
| + | Le mot de passe sera demandé lors de l' | ||
| + | |||
| + | Sur Chrome, il faut aller ici -> '' | ||
| + | |||
| + | Sur Zen browser, '' | ||
| + | ==== Configuration Nginx ==== | ||
| + | <code nginx> | ||
| + | server { | ||
| + | listen 443 ssl; | ||
| + | server_name votre-ha.domaine.fr; | ||
| + | |||
| + | ssl_certificate / | ||
| + | ssl_certificate_key / | ||
| + | |||
| + | # --- AJOUT MTLS --- | ||
| + | ssl_client_certificate / | ||
| + | ssl_verify_client on; | ||
| + | # ------------------ | ||
| + | |||
| + | location / { | ||
| + | proxy_pass http:// | ||
| + | # ... reste de votre config proxy habituelle | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Révocation de certificat ==== | ||
| + | |||
| + | Générer et gérer une CRL (Certificate Revocation List) demande un peu d' | ||
| + | |||
| + | Voici la procédure étape par étape pour révoquer un certificat et générer ce fichier. | ||
| + | |||
| + | === 1. Préparer l' | ||
| + | Pour qu' | ||
| + | |||
| + | Exécutez ces commandes dans le dossier où se trouvent vos clés : | ||
| + | |||
| + | <code bash> | ||
| + | touch index.txt | ||
| + | echo 1000 > crl_number | ||
| + | </ | ||
| + | |||
| + | === 2. Créer un fichier de configuration minimal (crl.conf) === | ||
| + | OpenSSL a besoin de savoir où chercher les informations. Créez un fichier nommé crl.conf et collez ceci dedans : | ||
| + | |||
| + | <code ini> | ||
| + | [ ca ] | ||
| + | default_ca = CA_default | ||
| + | |||
| + | [ CA_default ] | ||
| + | database = ./index.txt | ||
| + | crlnumber = ./ | ||
| + | certificate = ./ca.crt | ||
| + | private_key = ./ca.key | ||
| + | default_md = sha256 | ||
| + | </ | ||
| + | |||
| + | === 3. Révoquer le certificat compromis === | ||
| + | Imaginons que le certificat à bannir soit smartphone.crt. | ||
| + | |||
| + | openssl ca -config crl.conf -revoke smartphone.crt | ||
| + | |||
| + | Cette commande va mettre à jour le fichier '' | ||
| + | |||
| + | === 4. Générer le fichier .crl pour Nginx === | ||
| + | Maintenant, créez le fichier que Nginx pourra lire : | ||
| + | |||
| + | openssl ca -config crl.conf -gencrl -out liste_noire.crl | ||
| + | |||
| + | === 5. Configurer Nginx Proxy Manager === | ||
| + | Dans l' | ||
| + | |||
| + | ssl_crl / | ||
| + | |||
| + | (Assurez-vous que le fichier est bien présent dans le volume Docker de NPM, comme pour le ca.crt). | ||