Une Infrastructure à Clés Publiques (PKI) est une méthode pour valider l'authenticité d'une entité autrement inconnue au travers de réseaux qui ne sont pas de confiance. La PKI fonctionne en établissant une chaîne de confiance, plutôt que de faire confiance individuellement à chaque hôte ou entité de manière explicite. Pour qu'un certificat présenté par une entité distante soit reconnu, le certificat doit présenter une chaîne complète de certificats qui peuvent être validé en utilisant le certificat racine d'une autorité de certification (CA) en laquelle la machine locale a confiance.
L'établissement de la confiance avec une CA nécessite de valider des choses comme l'adresse de la compagnie, la propriété, les informations de contact, etc, et de s'assurer que la CA a suivi les bonnes pratiques, comme des audits de sécurité périodiques par des enquêteurs indépendants et le maintient d'une liste de révocation de certificats toujours disponible. Ceci est bien au delà de la portée de BLFS (comme pour la plupart des distributions Linux). Le magasin de certificats fournit ici est emprunté à la fondation Mozilla, qui ont établit une politique d'inclusion très stricte décrite ici.
This package is known to build and work properly using an LFS-11.2 platform.
Téléchargement (HTTP) : https://github.com/lfs-book/make-ca/releases/download/v1.10/make-ca-1.10.tar.xz
Taille du téléchargement : 32 Ko
Somme MD5 du téléchargement : 74f1ad16d7a086ac76e0424fd4dfe67b
Estimation de l'espace disque requis : 6.6 Mo (avec toutes les dépendances à l'exécution)
Estimation du temps de construction : 0.1 SBU (avec toutes les dépendances à l'exécution)
p11-kit-0.24.1 (requis à l'exécution pour générer des banques de certificats à partir d'ancres de confiance)
nss-3.82 (pour générer un NSSDB partagé)
Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/make-ca
Le script make-ca téléchargera et
adaptera les certificats inclus dans le fichier certdata.txt
pour l'utiliser comme ancre de
confiance dans le module de confiance de p11-kit-0.24.1. En plus,
il générera les banques de certificats du système utilisées par les
application de BLFS (si les applications recommandées et
facultatives sont présentes sur le système). Tout certificat local
stocké dans /etc/ssl/local
sera
importé dans les ancres de confiance et dans les banques de
certificats générées (en remplaçant la confiance de Mozilla). En
plus, toute valeur de confiance modifiée sera copiée des ancres de
confiance vers /etc/ssl/local
avant
toute mise à jour, ce qui préservera les modifications de valeurs
de confiance différentes de celles de Mozilla lorsque vous
utiliserez l'utilitaire trust de p11-kit pour effectuer des opération sur la
banque de certificats.
Pour installer les divers magasins de certificats, installez le
script make-ca au bon endroit. En
tant qu'utilisateur root
:
make install && install -vdm755 /etc/ssl/local
En tant qu'utilisateur root
, après
l'installation de p11-kit-0.24.1, téléchargez la banque de
certificats et préparez-la à être utilisée par le système avec la
commande suivante :
Si vous lancez le script une deuxième fois avec la même version
de certdata.txt
, par exemple pour
mettre à jour les banques après une mise à jour de make-ca ou pour ajouter des banques
supplémentaires parce que le logiciel requis est installé,
remplacez l'option -g
par
-r
sur la ligne de
commande. Si vous créez un paquet, lancez make-ca --help pour voir toutes
les options de la ligne de commande disponibles.
/usr/sbin/make-ca -g
Vous devriez mettre à jour régulièrement la banque de certificats
avec la commande ci-dessus soit manuellement, soit via un timer systemd. Un timer est installé dans /usr/lib/systemd/system/update-pki.timer
et s'il
est activé, il vérifiera les mises à jour une fois par
semaine.Exécutez les commandes
suivantes, en tant qu'utilisateur root
pour activer le timer
systemd :
systemctl enable update-pki.timer
Pour la plupart des utilisateurs, aucune configuration
supplémentaire n'est nécessaire, cependant le fichier certdata.txt
par défaut fournit par make-ca est
obtenu à partir de la branche mozilla-release, et est modifié pour
fournir une révision Mercurial. Ce sera la bonne version pour la
plupart des systèmes. Il y a plusieurs variantes du fichier
disponibles à l'utilisation que vous pourriez préférer pour une
raison ou une autre, incluses dans les produits Mozilla dans ce
livre. RedHat et OpenSUSE par exemple utilisent la version incluse
dans nss-3.82.
Des emplacements de téléchargement supplémentaires sont disponibles
dans les liens inclus dans /etc/make-ca.conf.dist
. Copiez simplement ce
fichier vers /etc/make-ca.conf
et
modifiez-le comme vous le voulez.
Il y a trois types de confiances reconnues par le script
make-ca, SSL/TLS, S/Mime et
signature de code. Pour OpenSSL,
il s'agit de serverAuth
,
emailProtection
et
codeSigning
respectivement.
Si un argument trust en omis, le certificat n'est ni reconnu ni
rejeté pour ce rôle. Les clients qui utilisent OpenSSL ou NSS rencontrant ce certificat renverront un
avertissement à l'utilisateur. Les clients qui utilisent
GnuTLS sans le support de
p11-kit ne sont pas conscient des
certificats de confiance. Pour inclure cette CA dans les fichiers
ca-bundle.crt
, email-ca-bundle.crt
ou objsign-ca-bundle.crt
(les anciens lots de
GnuTLS), il doit avoir l'argument
de confiance approprié.
Le répertoire /etc/ssl/local
permet
d'ajouter des certificats d'autorités supplémentaires à la banque
de confiance du système. Ce répertoire est aussi utilisé pour
stocker des certificats qui ont été ajoutés ou modifiés dans la
banque de confiance du système par p11-kit-0.24.1 pour que
les valeurs de confiance soient maintenues entre les mises à jour.
Les fichiers de ce répertoire doivent être au format des
certificats de confiance d'OpenSSL. Les certificats importés avec
l'utilitaire trust de
p11-kit-0.24.1 utiliseront les valeurs
d'utilisation étendue x509 pour assigner une valeur de confiance
par défaut aux ancres du système.
Si vous avez besoin de remplacer les valeurs de confiance ou que
vous devez créer un certificat OpenSSL de confiance manuellement à partir
d'un fichier encodé en PEM, vous devrez ajouter des arguments
« trust » à la commande openssl et créer un nouveau
certificat. Par exemple, si vous souhaitez utiliser les racines
CAcert pour que
les deux soient de confiance pour ces trois rôles, les commandes
suivantes créeront des certificats de confiance OpenSSL approprié
(à lancer en tant qu'utilisateur root
après l'installation de Wget-1.21.3) :
wget http://www.cacert.org/certs/root.crt && wget http://www.cacert.org/certs/class3.crt && openssl x509 -in root.crt -text -fingerprint -setalias "CAcert Class 1 root" \ -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \ > /etc/ssl/local/CAcert_Class_1_root.pem && openssl x509 -in class3.crt -text -fingerprint -setalias "CAcert Class 3 root" \ -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \ > /etc/ssl/local/CAcert_Class_3_root.pem && /usr/sbin/make-ca -r
Parfois, il peut arriver que vous ne soyez pas d'accord avec
l'inclusion d'une autorité de certification particulière. Si vous
voulez remplacer la confiance par défaut d'une CA particulière,
créez simplement une copie du certificat existant dans /etc/ssl/local
avec des arguments de confiances
différents. Par exemple, si vous ne voulez pas faire confiance au
fichier « Makebelieve_CA_Root », lancez les commandes
suivantes :
openssl x509 -in /etc/ssl/certs/Makebelieve_CA_Root.pem \ -text \ -fingerprint \ -setalias "Disabled Makebelieve CA Root" \ -addreject serverAuth \ -addreject emailProtection \ -addreject codeSigning \ > /etc/ssl/local/Disabled_Makebelieve_CA_Root.pem && /usr/sbin/make-ca -r
Last updated on