254 votes

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

Mon travail a décidé de publier son propre autorité de certification (CA) pour traiter différents aspects de notre travail en toute sécurité, sans avoir à payer pour des certificats.

  • Signature cryptographique des courriels
  • Cryptage du contenu des e-mails
  • Accédez à des éléments tels que l'entreprise IRC basé sur le certificat du client.
  • Révoquer automatiquement les clés des anciens employés

Ils m'ont envoyé un .pem et je ne sais pas comment l'ajouter à mon installation Ubuntu. Les instructions envoyées étaient les suivantes : "Double-cliquer dessus sur un Mac devrait l'installer."  

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

10 votes

Le commentaire "Les instructions envoyées étaient : \"Double-cliquer dessus sur un Mac devrait l'installer."" a illuminé ma journée.

0 votes

@mzoll et la façon d'échapper à ces guillemets

345voto

Mark E. Haase Points 4153

Installation d'une AC

Copiez votre certificat au format PEM (le format qui a ----BEGIN CERTIFICATE---- en elle) en /usr/local/share/ca-certificates et le nommer avec un .crt extension de fichier.

Ensuite, 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 également ajouter ce certificat d'AC à ces autres magasins de certificats. ( Instructions pour Firefox , Instructions pour le chrome , Instructions Java )

Test de l'AC

Vous pouvez vérifier si cela a fonctionné en recherchant le certificat que vous venez d'ajouter dans le fichier /etc/ssl/certs/ca-certificates.crt (qui est juste une longue liste de toutes vos autorités de certification de confiance concaténées ensemble).

Vous pouvez également utiliser le s_client d'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.

$ openssl s_client -connect foo.whatever.com:443 -CApath /etc/ssl/certs

CONNECTED(00000003)
depth=1 C = US, ST = Virginia, O = "Whatever, Inc.", CN = whatever.com, emailAddress = admin@whatever.com
verify return:1
depth=0 C = US, ST = Virginia, L = Arlington, O = "Whatever, Inc.", CN = foo.whatever.com
verify return:1
---
Certificate chain
 0 s:/C=US/ST=Virginia/L=Arlington/O=Whatever, Inc./CN=foo.whatever.com
   i:/C=US/ST=Virginia/O=Whatever, Inc./CN=whatever.com/emailAddress=admin@whatever.com

... snip lots of output ...

    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1392837700
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

La première chose à rechercher est la chaîne de certificats située en haut de la sortie. Elle devrait montrer que l'AC est l'émetteur (à côté de i: ). Cela vous indique que le serveur présente un certificat signé par l'autorité de certification que vous installez.

Deuxièmement, recherchez le verify return code à la fin pour être fixé à 0 (ok) .

86voto

Steven Monday Points 1645

man update-ca-certificats :

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.

D'après ce qui précède, j'en déduis que la meilleure façon de placer les fichiers de certificats locaux dans le magasin de confiance est de les placer dans le répertoire /usr/local/share/ca-certificates puis exécutez update-ca-certificates . Vous n'avez pas besoin de toucher /etc/ssl/certs directement.

22voto

Johann Points 571

Les autres réponses concernant update-ca-certificates sont correctes pour les applications qui lisent à partir du magasin de certificats du système. Pour Chrome et Firefox, et probablement d'autres, le certificat doit être placé dans la 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 d'autorité de certification racine pour émettre des 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 :

17voto

greuze Points 313

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

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

15voto

missmah Points 151

Pour les constructions plus récentes basées sur Debian, vous pouvez avoir besoin d'exécuter :

sudo dpkg-reconfigure ca-certificates

NOTE : sudo dpkg-reconfigure ca-certificates appelle update-ca-certificates en interne

Vous devrez bien sûr copier le certificat (fichier .crt) dans /usr/share/ca-certificates avant de faire tout cela :)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X