đDomaine home.arpa + AutoritĂ© de certification (AC)
â.home.arpaâ est un nom de domaine Ă usage spĂ©cial qui est dĂ©signĂ© pour une utilisation non unique dans les rĂ©seaux domestiques rĂ©sidentiels (câest-Ă -dire non autorisĂ© sur lâInternet public). Il a toujours besoin dâun serveur DNS privĂ© pour la rĂ©solution des noms dâhĂŽtes.
Informations
.local est utilisĂ© par mDNS (multicast DNS), un protocole conçu par Apple. Utiliser exemple.local ne fonctionne que sur les systĂšmes (et pour les destinations) qui ont un dĂ©mon mDNS en cours dâexĂ©cution (par exemple MacOSX, distributions Linux actuelles comme Ubuntu/Fedora).
- â.home.arpaâ est un nom de domaine Ă usage spĂ©cial qui est dĂ©signĂ© pour une utilisation non unique dans les rĂ©seaux domestiques rĂ©sidentiels (câest-Ă -dire non autorisĂ© sur lâInternet public). Il a toujours besoin dâun serveur DNS privĂ© pour la rĂ©solution des noms dâhĂŽtes.
- â.localâ est un nom de domaine Ă usage spĂ©cial qui peut fonctionner sans serveur DNS local (câest-Ă -dire privĂ©).
Le home.arpa spTLD nâest pas un nom de domaine unique Ă lâĂ©chelle mondiale, et vous ne pouvez pas le rĂ©soudre sur Internet. Il est destinĂ© uniquement Ă ĂȘtre utilisĂ© Ă lâintĂ©rieur dâun petit rĂ©seau, comme votre rĂ©seau domestique. Les routeurs et les serveurs du systĂšme de noms de domaine (DNS) savent, [en thĂ©orie], ne pas transmettre les demandes ARPA quâils ne comprennent pas sur Internet public.
Domaine home.arpa
Autorité de Certification (AC)
En cryptographie, une AutoritĂ© de Certification (AC ou CA pour Certificate Authority en anglais) est un tiers de confiance permettant dâauthentifier lâidentitĂ© des correspondants. Une autoritĂ© de certification dĂ©livre des certificats dĂ©crivant des identitĂ©s numĂ©riques et met Ă disposition les moyens de vĂ©rifier la validitĂ© des certificats quâelle a fournis.
Les services des autorités de certification sont principalement utilisés dans le cadre de la sécurisation des communications numériques via le protocole Transport Layer Security (TLS) utilisé par exemple pour sécuriser les communications web (HTTPS) ou email (SMTP, POP3, IMAP⊠sur TLS), ainsi que pour la sécurisation des documents numériques (par exemple au moyen de signatures électroniques avancées telles que PAdES pour des documents PDF, ou via le protocole S/MIME pour les e-mails).
[Citation wikipédia Autorité de certification]
Utilisation de lâapplication OpenSSL qui est installĂ©e par dĂ©faut sur toutes les distributions linux
Créer une Autorité de Certification nommée homearpaCA
Créer le dossier
1
2
mkdir $HOME/homearpaCA
cd $HOME/homearpaCA
Procédure
- Générer une autorité de certification (AC) pour usage privé
- Générer un certificat SSL pour un domaine
- Paramétrer les services concernés : Ngnix
- Quelques abréviations:
- CA :
- Certificate Authority
- Autorité de Certification
- KEY :
- Private key
- Clé privée
- CSR :
- Certificate Signing Request
- Demande de Signature de Certificat
- CN :
- Common Name
- Nom Commun (nom pleinement qualifié dans le cas du certificat client)
- CRT :
- Certificat
- CA :
On va générer des certificats pour un domaine interne home.arpa.
Il sera nĂ©cessaire, pour que le certificat soit reconnu officiellement, dâajouter le CA dans le magasin de certificat du systĂšme.
Clé homearpaCA.key
On commence par le plus important, la clé privé de votre autorité de certification. Elle sera à préserver de tout (vol, perte, suppression, etc ).
Câest elle qui vous permettra de signer de nouveaux certificats.
1
openssl genrsa -out homearpaCA.key
Certificats racines homearpaCA
homearpaCA.pem
Maintenant quâon a la clĂ©, on va gĂ©nĂ©rer le certificat racine homearpaCA.pem :
1
openssl req -x509 -new -nodes -key homearpaCA.key -sha256 -days 7300 -subj "/C=FR/ST=PAYS-DE-LOIRE/L=BOPRO/O=HOMEARPA/OU=HOMEARPA/CN= HOMEARPA CA" -out homearpaCA.pem
Note : Lâoption
-subjpermet dâĂ©viter de rĂ©pondre Ă un certain nombre de questions. On gĂ©nĂšre le certificat pour une durĂ©e de 20 ans (7300).
homearpaCA.crt
GĂ©nĂ©rer un certificat au format crt en plus du pem pour lâautoritĂ© de certification CA
1
openssl x509 -in homearpaCA.pem -inform PEM -out homearpaCA.crt
Nous avons maintenant 3 fichiers :
- homearpaCA.key => La clé privée
- homearpaCA.pem => Certificat racine au format pem
- homearpaCA.crt => Certificat racine au format crt
Copie homearpaCA crt et key
Copier les fichiers homearpaCA.key et homearpaCA.crt dans /etc/ssl/private/
1
2
sudo cp homearpaCA.key /etc/ssl/private/
sudo cp homearpaCA.crt /etc/ssl/private/
Déployer Autorité Certification
Les certificats dâAC nous aident Ă identifier et Ă faire confiance aux autres parties. Lorsquâun tiers envoie un certificat, le client qui le reçoit valide le certificat.
Tout dâabord, le client rĂ©cupĂšre la clĂ© publique de cette autoritĂ© de certification particuliĂšre qui a signĂ© le certificat, Ă partir de son magasin de confiance. Il dĂ©crypte ensuite la signature prĂ©sente dans le certificat du tiers pour obtenir une valeur de hachage.
Ensuite, le client calcule indĂ©pendamment le hachage Ă lâaide des donnĂ©es du certificat client et le compare avec la valeur de hachage dĂ©chiffrĂ©e. Si elle correspond, le tiers est digne de confiance. En gĂ©nĂ©ral, la vĂ©rification du certificat se fait de cette maniĂšre.
Pour que vos certificats *.home.arpa soient reconnus, il faut installer le certificat racine de votre CA (homearpaCA.crt ou Ă©quivalent, pas la clĂ© .key) dans le magasin dâAC de confiance du systĂšme ou du navigateur.
Red Hat, CentOS, Alma Linux, Rocky
Red Hat, CentOS, Alma Linux, Rocky: https://www.linuxtricks.fr/wiki/red-hat-centos-alma-linux-rocky-ajouter-une-autorite-de-certification-au-magasin-systeme
Debian distributions
Copier le certificat
1
2
sudo mkdir -p /usr/local/share/ca-certificates
sudo cp homearpaCA.crt /usr/local/share/ca-certificates/
Mettre Ă jour le magasin de certificats :
1
sudo update-ca-certificates
Un message indique quâun certificat a Ă©tĂ© ajoutĂ© :
1
2
3
4
5
Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt, it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done
VĂ©rifier que le certificat a bien Ă©tĂ© ajoutĂ© en vĂ©rifiant quâun .pem a Ă©tĂ© créé dans /etc/ssl/certs :
1
ls /etc/ssl/certs/ | grep -i homearpa
Archlinux, Manjaro, EndeavourOS
Pour des clients ArchLinux ça se fait alors avec la commande trust
1
2
# en mode su
trust anchor --store homearpaCA.crt
On peut vĂ©rifier quâil est bien dans la liste Ă partir de son nom: trust list | rg -C 2 "HOMEARPA"
1
2
3
4
5
pkcs11:id=%9E%E4%56%A9%A1%3D%7D%54%3D%76%65%14%DD%E1%40%6D%D1%36%85%F7;type=cert
type: certificate
label: HOMEARPA CA
trust: anchor
category: authority
On en profite pour bien vĂ©rifier que le certificat est un certificat dâautoritĂ© (catĂ©gorie authority) et bien sĂ»r que ce soit bien un certificat (type certificate).
Il est alors installé dans le dossier /etc/ca-certificates/trust-source/.
1
2
3
4
5
/etc/ca-certificates/trust-source/
âââ anchors
âââ blocklist
âââ _HOMEARPA_CA.p11-kit
âââ README
Pour supprimer le certificat des certificats de confiance, on utilise le fichier généré dans ce dossier.
1
2
# en mode su
trust anchor --remove /etc/ca-certificates/trust-source/_HOMEARPA_CA.p11-kit
Alpine Linux
Sur Alpine et dâautres distributions Linux telles que Debian, un utilitaire de paquets appelĂ© ca-certificatesca-certificats comprend une collection de certificats de confiance des autoritĂ©s de certification. Ces certificats vĂ©rifient lâidentitĂ© des sites Web auxquels nous nous connectons sur les connexions SSL (TLS).
Bien sĂ»r, nous devons mettre Ă jour cette collection avec nâimporte quel certificat nouvellement créé. La collection de certificats de confiance rĂ©side dans le fichier /etc/ssl/certs/ca-certificates.crt. Nous pouvons mettre Ă jour ce magasin de confiance en ajoutant des certificats individuels situĂ©s dans le rĂ©pertoire /usr/local/share/ca-certificates/.
Mettre Ă jour les paquets et installer ca:
1
sudo apk update && sudo apk add ca-certificates
En outre, il est recommandé de nettoyer le cache apk avant de mettre à jour la collection de certificats:
1
sudo rm -rf /var/cache/apk/*
Ensuite, nous copions server.crt aux /usr/local/share/ca-certificates/ :
1
sudo cp docker-data/homearpaCA.crt /usr/local/share/ca-certificates/
Enfin, nous pouvons ajouter le certificat Ă la collection de ca-certificats en utilisant la commande update-ca-certificates:
1
sudo update-ca-certificates
Vérifier les mises à jour au bas du fichier.
1
tail -25 /etc/ssl/certs/ca-certificates.crt
Firefox (OBLIGATOIRE)
Firefox utilise UNIQUEMENT son propre magasin (base cert9.db).
Importer uniquement dans Firefox
about:preferences#connectionSecuritydans la barre dâadresse.- Descendez Ă la section « Certificats ».
- Cliquez sur « Gérez les certificats ».
- Onglet « Autorités ».
- Cliquez sur « Importer » et choisissez
homearpaCA.crt. - Cochez au minimum « Identifier des sites web » puis validez.
ParamĂštres â> Vie privĂ©e et sĂ©curitĂ©

Certificat wildcard *.home.arpa
Un certificat SSL Wildcard permet de sécuriser un domaine principal et tous ses sous-domaines avec un seul certificat, offrant ainsi flexibilité et simplicité de gestion
OpenSSL pour générer un certificat wildcard *.home.arpa signé par la CA (Autorité de Certification) locale dont la clé privée est homearpaCA.key (et le certificat homearpaCA.crt).
- Clé de la CA :
/etc/ssl/private/homearpaCA.key - Certificat de la CA :
/etc/ssl/private/homearpaCA.crt - Dossier pour le wildcard :
/etc/ssl/home.arpa/
Clé privée pour le wildcard
En mode su
1
2
3
4
5
6
mkdir -p /etc/ssl/home.arpa
cd /etc/ssl/home.arpa
# clé privée RSA 2048 bits pour le certificat wildcard
openssl genrsa -out wildcard.home.arpa.key 2048
chmod 600 wildcard.home.arpa.key
Créer fichier pour les extensions (SAN)
Pour que les navigateurs modernes acceptent le wildcard, il faut un champ Subject Alternative Name (SAN).
Créer /etc/ssl/home.arpa/wildcard.home.arpa.ext :
1
2
3
4
5
6
7
8
9
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.home.arpa
DNS.2 = home.arpa
Générer CSR pour *.home.arpa
1
2
3
4
5
cd /etc/ssl/home.arpa
openssl req -new -key wildcard.home.arpa.key \
-out wildcard.home.arpa.csr \
-subj "/C=FR/ST=Pays-de-la-Loire/L=Beaupreau/O=HomeLab/CN=*.home.arpa"
- Le
CNest*.home.arpa. - Les SAN sont ajoutés au moment de la signature (prochaine étape) via le fichier
.ext
Signer CSR avec AC homearpaCA
Autorité de Certification:
- Clé CA :
/etc/ssl/private/homearpaCA.key - Certificat CA :
/etc/ssl/private/homearpaCA.crt
1
2
3
4
5
6
7
8
9
10
11
12
13
cd /etc/ssl/home.arpa
openssl x509 -req \
-in wildcard.home.arpa.csr \
-CA /etc/ssl/private/homearpaCA.crt \
-CAkey /etc/ssl/private/homearpaCA.key \
-CAcreateserial \
-out wildcard.home.arpa.crt \
-days 3650 \
-sha256 \
-extfile wildcard.home.arpa.ext
# Si passphrase homearpaCA.key
#Enter pass phrase for /etc/ssl/private/homearpaCA.key:
Au final:
wildcard.home.arpa.crt: certificat serveur wildcard signé par votre CAwildcard.home.arpa.key: clé privée correspondante
Information sur le role du fichier 'wildcard.home.arpa.ext'
Le fichier wildcard.home.arpa.ext nâest jamais vu ni interprĂ©tĂ© par les navigateurs : il ne sert quâau moment oĂč vous signez le certificat avec OpenSSL pour y injecter les extensions (SAN, usages, etc.)
RÎle réel du .ext, lorsque vous lancez la commande de signature, vous faites quelque chose comme :
1
2
3
4
5
6
openssl x509 -req \
-in wildcard.home.arpa.csr \
-CA homearpaCA.crt \
-CAkey homearpaCA.key \
-out wildcard.home.arpa.crt \
-extfile wildcard.home.arpa.ext
- OpenSSL lit
wildcard.home.arpa.extet copie son contenu dans le certificat finalwildcard.home.arpa.crt(dans les champs « X509v3 extensions ») - Le navigateur, lui, ne connaßt que le certificat présenté par le serveur (le
.crt) et lit ses extensions déjà intégrées
Donc :
- Le
.extest un fichier intermĂ©diaire de gĂ©nĂ©ration, purement cĂŽtĂ© serveur/admin. - Les navigateurs ne le tĂ©lĂ©chargent pas, ne le parsĂšment pas, ne savent mĂȘme pas quâil existe.
Ce que voient réellement les navigateurs
Les navigateurs valident, dans le certificat fini (wildcard.home.arpa.crt) :
- Le sujet / CN : ici
*.home.arpa. - Le champ Subject Alternative Name (SAN) : par exemple
DNS:*.home.arpaetDNS:home.arpa. - Les extensions comme
Key Usage,Extended Key Usage,Basic Constraints, etc.
Tout cela vient du contenu du .ext, mais une fois « compilĂ© » dans le certificat, câest totalement opaque pour le client que ça provenait dâun fichier sĂ©parĂ©.
En résumé :
- Le navigateur ne tient jamais compte de
/etc/ssl/home.arpa/wildcard.home.arpa.extdirectement. - Il tient compte uniquement du certificat TLS que Nginx lui présente.
- Le
.extnâest quâun moyen pratique de contrĂŽler ce qui sera Ă©crit dans ce certificat (SAN, usages, etc.).
Vérifier certificat wildcard.home.arpa.crt
1
openssl x509 -in wildcard.home.arpa.crt -noout -text | less
Analyse
1
2
3
4
5
6
7
8
9
[...]
Subject: C=FR, ST=Pays-de-la-Loire, L=Beaupreau, O=HomeLab, CN=*.home.arpa
Subject Public Key Info:
X509v3 Subject Alternative Name:
X509v3 Subject Key Identifier:
[...]
X509v3 Subject Alternative Name:
DNS:*.home.arpa, DNS:home.arpa
[...]
Vérifiez bien :
- Le
SubjectavecCN = *.home.arpa - La section
X509v3 Subject Alternative NamecontenantDNS:*.home.arpaetDNS:home.arpa
Vous pouvez ensuite les utiliser sur votre reverse proxy / services, en vous assurant que le certificat homearpaCA.crt est installé comme autorité de confiance sur tous les clients.





