2012-06-15 16:14:17 +0000 2012-06-15 16:14:17 +0000
186
186
Advertisement

Comment ajouter une autorité de certification (CA) à Ubuntu ?

Advertisement

Mon travail a décidé d'émettre sa propre autorité de certification (CA) pour traiter différents aspects de notre travail en toute sécurité sans payer de certificats.

  • Signer cryptographiquement les e-mails
  • Crypter le contenu des e-mails
  • Donner accès à des choses comme la société IRC basée sur un certificat client.
  • Révoquer automatiquement les clés des anciens employés

Ils m'ont envoyé un fichier .pem, et je ne sais pas comment l'ajouter à mon installation Ubuntu. Les instructions envoyées étaient : “Double-cliquer dessus sur un Mac devrait l'installer”&nbsp ;

Comment procéder ? Dois-je faire quelque chose avec OpenSSL pour créer un fichier .key, .csr, ou .crt ?

Advertisement

Réponses (8)

253
253
253
2014-02-19 19:13:09 +0000

Installer un CA

Copiez votre certificat au format PEM (le format qui contient ----BEGIN CERTIFICATE----) dans /usr/local/share/ca-certificates et nommez-le avec une extension de fichier .crt.

Puis exécutez sudo update-ca-certificates.

Mises en garde: Cette installation ne concerne que les produits qui utilisent ce magasin de certificats. Certains produits peuvent utiliser d'autres magasins de certificats ; si vous utilisez ces produits, vous devrez ajouter ce certificat CA à ces autres magasins de certificats également. Vous pouvez vérifier si cela a fonctionné en recherchant le certificat que vous venez d'ajouter dans /etc/ssl/certs/ca-certificates.crt (qui n'est qu'une longue liste de toutes vos AC de confiance concaténée ensemble). Vous pouvez également utiliser le client OpenSSL en essayant de vous connecter à un serveur dont vous savez qu'il utilise un certificat signé par l'autorité de certification que vous venez d'installer. La première chose à rechercher est la chaîne de certificats qui se trouve en haut de la sortie. Elle doit indiquer que l'autorité de certification est l'émetteur (à côté de i:). Cela vous indique que le serveur présente un certificat signé par l'AC que vous installez.

Ensuite, cherchez le verify return code à la fin pour qu'il soit mis à 0 (ok).

69
69
69
2012-06-15 18:07:40 +0000

man update-ca-certificates :

update-ca-certificates is a program that updates the directory /etc/ssl/certs to hold SSL
certificates and generates ca-certificates.crt, a concatenated single-file list of
certificates.

It reads the file /etc/ca-certificates.conf. Each line gives a pathname of a CA
certificate under /usr/share/ca-certificates that should be trusted. Lines that begin
with "#" are comment lines and thus ignored. Lines that begin with "!" are deselected,
causing the deactivation of the CA certificate in question. Certificates must have a .crt
extension in order to be included by update-ca-certificates.

Furthermore all certificates with a .crt extension found below /usr/local/share/ca-
certificates are also included as implicitly trusted.

De ce qui précède, j'en déduis que la meilleure façon d'obtenir des fichiers de certificats locaux dans le magasin de confiance est de les mettre dans /usr/local/share/ca-certificates, puis de lancer update-ca-certificates. Vous n'avez pas besoin de toucher directement à /etc/ssl/certs.

15
Advertisement
15
15
2013-10-10 18:46:49 +0000

Les autres réponses concernant update-ca-certificates sont correctes pour les applications qui lisent le magasin de certificats du système. Pour Chrome et Firefox, et probablement quelques autres, le certificat doit être mis dans le nssdb, le backend de la bibliothèque NSS de Mozilla.

De https://code.google.com/p/chromium/wiki/LinuxCertManagement :

Par exemple, pour faire confiance à un certificat racine de l'AC pour l'émission de certificats de serveur SSL, utilisez

certutil -d sql:$HOME/. pki/nssdb -A -t “C,” -n <surnom du certificat> -i <nom du fichier du certificat>

<certificate nickname> est arbitraire, et <certificate filename> est votre fichier .pem ou .crt.

Autres références utiles :

15
15
15
2014-04-30 13:39:09 +0000

J'ai eu le même problème et j'ai dû copier le fichier .pem dans /usr/local/share/ca-certificates, en le renommant .crt. Le fichier .cer peut facilement être converti en .pem, avec openssl, par exemple, si vous n'avez pas le .pem.

Après avoir copié le fichier, vous devez exécuter sudo update-ca-certificates.

11
Advertisement
11
11
2015-09-02 06:19:09 +0000

Pour les nouvelles constructions basées sur Debian, vous devrez peut-être exécuter :

sudo dpkg-reconfigure ca-certificates

NOTE : sudo dpkg-reconfigure ca-certificates calls update-ca-certificates internally

Vous devrez bien sûr encore copier le certificat (fichier .crt) dans /usr/share/ca-certificates avant de faire quoi que ce soit :)

6
6
6
2018-04-10 01:00:50 +0000

En vous basant sur la réponse de dwmw2, vous pouvez en fait dire aux applications qui utilisent le NSS pour sa gestion des certificats d'utiliser le magasin de confiance du système.

libnss3 est livré par défaut avec un ensemble en lecture seule de certificats d'AC racine (libnssckbi.so), donc la plupart du temps vous devez les ajouter manuellement vous-même au magasin de confiance des utilisateurs locaux situé dans $HOME/.pki/nssdb. p11-kit offre un remplacement de libnssckbi.so qui agit comme un adaptateur aux certificats racine du système installés dans /etc/ssl/certs.

Edit:

Il semble y avoir plus de versions de libnssckbi.so que juste dans libnss3. Voici un script pour les trouver toutes, les sauvegarder et les remplacer par des liens vers p11-kit :

sudo apt-get update && sudo apt-get install -y p11-kit libnss3
find / -type f -name "libnssckbi.so" 2>/dev/null | while read line; do
    sudo mv $line ${line}.bak
    sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so $line
done

Instructions originales:

Pour ce faire, installez p11-kit et libnss3 (s'ils ne sont pas déjà insérés) :

sudo apt-get update && sudo apt-get install -y p11-kit libnss3

Puis sauvegardez les libnssckbi.so existants fournis par libnss3 : Enfin, créez le lien symbolique :

sudo mv /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so.bak

Pour confirmer que cela a fonctionné, vous pouvez exécuter ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so et il devrait afficher le lien :

sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so

Maintenant, si vous ajoutez un certificat au CA store en utilisant update-ca-certificates, ces certificats seront désormais disponibles pour les applications utilisant NSS (libnss3) comme Chrome.

3
Advertisement
3
3
2016-12-12 12:36:34 +0000

Comme indiqué, les différentes applications utilisant le NSS ont leur propre magasin de certificats. En l'état actuel des choses sur Ubuntu, vous devez utiliser manuellement certutil pour ajouter vos CA pour chaque application, pour chaque utilisateur.

Dans d'autres distributions comme Fedora, ce genre de choses Juste Works™ et vous devriez déposer un bug contre toutes les applications qui ne font pas automatiquement confiance aux CA que vous installez avec update-ca-trust.

Vous pouvez aussi corriger cela dans Ubuntu en installant le paquet p11-kit-modules et en remplaçant ensuite le module NSS built-in trust roots par p11-kit-trust.so, en faisant un lien symbolique par exemple de /usr/lib/firefox/libnssckbi.so vers /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so

Vous obtiendrez alors les racines de confiance configurées du système, et non pas des racines codées en dur. Notez qu'Ubuntu fournit plusieurs copies différentes de la bibliothèque libnssckbi.so avec les racines de confiance codées en dur, et vous devez les remplacer toutes !

cf. https://bugs.launchpad.net/ubuntu/+source/nss/+bug/1647285

1
1
1
2018-01-02 12:58:09 +0000

Réponse sérieusement stupide à ajouter ici, mais j'avais passé 2 heures à faire des allers-retours avec des certutils dans linux… J'étais sûr que tout était correct :

hutber@hutber-mint /var/www/asos-mvt-framework $ certutil -L -d sql:${HOME}/.pki/nssdb

Certificate Nickname Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

anyproxy CT,, 
rootCA CT,, 
myasos CT,,

Mais quand même, en chrome, rien ne fonctionnait. J'ai tout essayé, à la fin….

Restarting Chrome

a été la clé de mon succès après avoir suivi : Le conseil de Steven Monday (https://superuser.com/questions/437330/how-do-you-add-a-certificate-authority-ca-to-ubuntu#437377)

Advertisement
Advertisement