make-ca-1.14

Introduction à make-ca

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.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.2.

Informations sur le paquet

  • Téléchargement (HTTP) : https://github.com/lfs-book/make-ca/archive/v1.14/make-ca-1.14.tar.gz

  • Taille du téléchargement : 40 Ko

  • Somme MD5 du téléchargement : e99d2985ead0037caedb765fd66b33f0

  • Estimation de l'espace disque requis : 164 Ko (avec toutes les dépendances à l'exécution)

  • Estimation du temps de construction : 0,1 SBU (avec toutes les dépendances à l'exécution)

[Note]

Note

Ce paquet contient un certificat de CA pour valider l'identité de https://hg.mozilla.org/. Si la chaine de confiance de ce site a changé après la distribution de make-ca-1.14, il peut échouer à récupérer la révision de certdata.txt à partir du serveur. Utilisez une version à jour de make-ca sur la page des versions si vous avez ce problème.

Dépendances de make-ca

Requises

p11-kit-0.25.5 (à l'exécution, construit après libtasn1-4.19.0, requis dans les instructions suivantes pour générer le dépôt des certificats à partir des ancres de confiance, et chaque fois que vous exécutez make-ca)

Facultatives (exécution)

nss-3.103 (pour générer un NSSDB partagé)

Installation de make-ca and Generation of the CA-certificates stores

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.25.5. 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
[Note]

Note

Techniquement,ce paquet est déjà installé. Cependant la plupart des paquets qui nécessitent make-ca en dépendance ont en fait besoin du dépôt des certificats systèmes mis en place par ce paquet, plutôt que le programme make-ca lui-même. Les instructions pour utiliser make-ca pour mettre en place le dépôt des certificats systèmes se trouvent dans cette section. Vous devriez vous assurer que la dépendance à l'exécution de make-ca est maintenant satisfaite et continuez à suivre les instructions.

En tant qu'utilisateur root, téléchargez la banque de certificats et préparez-la à être utilisée par le système avec la commande suivante :

[Note]

Note

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 une tâche cron.Si vous avez installé Fcron-3.2.1 et complété la section sur les travaux périodiques, exécutez les commandes suivantes, en tant qu'utilisateur root pour créer une tache cron hebdomadaire :

cat > /etc/cron.weekly/update-pki.sh << "EOF" &&
#!/bin/bash
/usr/sbin/make-ca -g
EOF
chmod 754 /etc/cron.weekly/update-pki.sh

Configuration de make-ca

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.103. Des emplacements de téléchargement supplémentaires sont disponibles dans les liens inclus dans /etc/make-ca/make-ca.conf.dist. Copiez simplement ce fichier vers /etc/make-ca.conf et modifiez-le comme vous le voulez.

À propos des arguments sur la confiance

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é.

Ajouter des certificats de CA supplémentaires

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.25.5 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.25.5 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.24.5) :

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

Remplacer la confiance de Mozilla

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

Utiliser make-ca avec Python3

Lorsque Python3 a été installé dans LFS, il contenait le module pip3 avec les certificats inclus du module Certifi. C'était nécessaire, mais cela signifie que lorsque vous utilisez pip3, il peut utiliser ces certificats surtout lors de la création d'environnements virtuels ou à l'installation d'un module avec toutes ses dépendances wheels en une seule fois.

On considère en général que l'administrateur système est en charge des certificats disponibles. Maintenant que make-ca-1.14 et p11-kit-0.25.5 sont installés et que make-ca est configuré, il est possible de faire utiliser les certificats systèmes à pip3.

Les certificats embarqués installés dans LFS sont une image du moment où la version de Certifi a été créée. Si vous mettez souvent à jour les certificats du système, les certificats embarqués seront périmés.

Pour utiliser les certificats du système dans Python3, vous devriez configurer la variable _PIP_STANDALONE_CERT pour y pointer, p. ex. pour le shell bash :

export _PIP_STANDALONE_CERT=/etc/pki/tls/certs/ca-bundle.crt
[Avertissement]

Avertissement

Si vous avez créé des environnements virtuels, par exemple pour tester des modules, et qu'ils incluent le module Requests ou Certifi dans ~/.local/lib/python3.12/ , alors ces modules locaux seront utilisés au lieu des certificats systèmes à moins que vous supprimiez les modules locaux.

Pour utiliser les certificats systèmes dans Python3 avec les profils BLFS, ajoutez la variable suivante à vos profils systèmes ou personnels :

mkdir -pv /etc/profile.d &&
cat > /etc/profile.d/pythoncerts.sh << "EOF"
# Begin /etc/profile.d/pythoncerts.sh

export _PIP_STANDALONE_CERT=/etc/pki/tls/certs/ca-bundle.crt

# End /etc/profile.d/pythoncerts.sh
EOF

Contenu

Programmes installés: make-ca
Répertoires installés: /etc/ssl/{certs,local} et /etc/pki/{nssdb,anchors,tls/{certs,java}}

Descriptions courtes

make-ca

est un script shell qui adapte une version actuelle de certdata.txt et le prépare pour l'utiliser comme banque de confiance du système