Mon travail a décidé de créer sa propre autorité de certification (CA) pour gérer différents aspects de notre travail en toute sécurité, sans avoir à payer pour des certificats.
- Signer de manière cryptographique des emails
- Crypter le contenu des emails
- Créez un accès à des éléments tels que le certificat de client IRC de la société .
- Révoquer automatiquement les clés des anciens employés
Ils m'ont envoyé un .pem
fichier et je ne sais pas comment l'ajouter à mon installation Ubuntu. Les instructions envoyées étaient les suivantes: "Double-cliquez dessus sur un Mac pour l’installer."
Comment je procède? Ai-je besoin de faire quelque chose avec OpenSSL pour créer un .key
, .csr
ou .crt
fichier?
ubuntu
certificate
trusted-root-certificates
Xeoncross
la source
la source
Réponses:
Installer une autorité de certification
Copiez votre certificat au format PEM (le format qu’il contient
----BEGIN CERTIFICATE----
)/usr/local/share/ca-certificates
et nommez-le avec une.crt
extension de fichier.Alors courez
sudo update-ca-certificates
.Mises en garde: cette installation concerne uniquement les produits qui utilisent ce magasin de certificats. Certains produits peuvent utiliser d'autres magasins de certificats; Si vous utilisez ces produits, vous devez également ajouter ce certificat de CA à ces autres magasins de certificats. ( Instructions Firefox , Instructions Chrome , Instructions Java )
Tester le CA
Vous pouvez vérifier si cela a fonctionné en recherchant le certificat que vous venez d'ajouter
/etc/ssl/certs/ca-certificates.crt
(liste longue de tous les certificats concaténés de votre autorité de certification approuvée).Vous pouvez également utiliser le client 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.
La première chose à rechercher est la chaîne de certificats située en haut de la sortie. Cela devrait 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'autorité de certification que vous installez.Deuxièmement, recherchez-le
verify return code
à la fin0 (ok)
.la source
crt
commentaire d'extension, c'était le secret pour obtenir ce travail pour moi, on m'a donné un certificat avec unecert
extension et je ne comprenais pas pourquoi rien ne fonctionnait.s_client
n'envoie pas SNI par défaut et le serveur peut avoir besoin de SNI, surtout s'il prend en charge des hôtes / sites virtuels avec différents certificats. pour ce cas ajouter-servername foo.whatever.com
. Ou si c'est un serveur web utiliser (versions modernes de)curl
ouwget
qui font SNI automatiquement.man update-ca-certificates :
D'après ce qui précède, je déduirais que le moyen privilégié pour importer des fichiers de certificat locaux dans le magasin approuvé est de les placer
/usr/local/share/ca-certificates
, puis de les exécuterupdate-ca-certificates
. Vous n'avez pas besoin de toucher/etc/ssl/certs
directement.la source
--fresh
pour le faire fonctionner. par exempleupdate-ca-certificates --fresh
J'ai eu le même problème, et j'ai dû copier le
.pem
fichier en le/usr/local/share/ca-certificates
renommant.crt
. Le.cer
fichier peut facilement être converti en.pem
, avec openssl, par exemple, si vous n'avez pas le fichier.pem
.Après avoir copié le fichier, vous devez l'exécuter
sudo update-ca-certificates
.la source
openssl x509 -inform DER -in certificate.cer -out certificate.crt
Les autres réponses concernant
update-ca-certificates
sont correctes pour les applications lues à partir du magasin de certificats du système. Pour Chrome et Firefox, et probablement d’autres, le certificat doit être placé dans nssdb, le backend de la bibliothèque Mozilla NSS.À partir de https://code.google.com/p/chromium/wiki/LinuxCertManagement :
Où
<certificate nickname>
est arbitraire et<certificate filename>
constitue votre fichier .pem ou .crt.Autres références utiles:
certutil
page de manuel décrivant les paramètres utilisés ci-dessus: https://developer.mozilla.org/en-US/docs/NSS_reference/NSS_tools_:_certutilla source
mkdir -p $HOME/.pki/nssdb && chmod -R 0700 $HOME/.pki && certutil -d sql:$HOME/.pki/nssdb -N --empty-password
Pour les nouvelles versions basées sur Debian, vous devrez peut-être exécuter:
REMARQUE: sudo dpkg-reconfigure appelle ca-certificats en interne update-ca-certificates
Bien sûr, vous devrez toujours copier le certificat (fichier .crt) dans / usr / share / ca-certificates avant de faire ceci :)
la source
En vous appuyant sur la réponse de dwmw2 , vous pouvez indiquer aux applications utilisant NSS pour la gestion de ses certificats d'utiliser le magasin de données de confiance du système.
libnss3
par défaut, il est livré avec un ensemble en lecture seule de certificats d'autorité de certification racine (libnssckbi.so
). Par conséquent, vous devez généralement les ajouter manuellement vous-même au magasin d'approbation d'utilisateurs local situé dans$HOME/.pki/nssdb
.p11-kit
offre une solution de remplacement immédiatelibnssckbi.so
qui agit comme un adaptateur pour les certificats racine installés à l’échelle du système/etc/ssl/certs
.Modifier:
Il semble y avoir plus de versions de
libnssckbi.so
dehors que juste danslibnss3
. Ce qui suit est un script pour les trouver tous, les sauvegarder et les remplacer par des liens versp11-kit
:Instructions d'origine:
Pour ce faire, installez
p11-kit
etlibnss3
(s'ils ne sont pas déjà installés):Puis sauvegardez l'existant
libnssckbi.so
fourni parlibnss3
:Enfin, créez le lien symbolique:
Pour confirmer que cela fonctionne, vous pouvez exécuter
ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.so
et il devrait montrer le lien:Désormais, si vous ajoutez un certificat au magasin
update-ca-certificates
d'autorisations à l'aide de , ces certificats seront désormais disponibles pour les applications utilisant NSS (libnss3
), telles que Chrome.la source
Comme indiqué précédemment, diverses applications utilisant NSS ont leur propre magasin de certificats. À l'heure actuelle, vous devez utiliser manuellement Ubuntu
certutil
pour ajouter vos autorités de certification à chaque application, pour chaque utilisateur.Dans d'autres distributions telles que Fedora, ce genre de choses fonctionne avec Just Works ™ et vous devriez créer un bogue contre toutes les applications qui n'approuvent pas automatiquement les autorités de certification avec lesquelles vous installez
update-ca-trust
.Vous pouvez résoudre ce problème dans Ubuntu aussi en installant le
p11-kit-modules
package, puis remplacer le NSS racines de confiance intégrées module avecp11-kit-trust.so
, en faisant un lien symbolique par exemple de/usr/lib/firefox/libnssckbi.so
la/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so
Ensuite , vous aurez obtenir les racines de confiance configurées, et non pas quelques ones codées en dur du système. Notez qu'Ubuntu fournit plusieurs copies différentes de cette bibliothèque libnssckbi.so avec les racines de confiance codées en dur, et vous devez toutes les remplacer!
cf. https://bugs.launchpad.net/ubuntu/+source/nss/+bug/1647285
la source
sudo find / -type f -name "libnssckbi.so"
, il a trouvélibnssckbi.so
en trois endroits:/usr/lib/thunderbird/
,/usr/lib/firefox/
et/usr/lib/x86_64-linux-gnu/nss/
. Donc, vous dites que je devrais relier lelibnssckbi.so
dans ces trois dossiersp11-kit-trust.so
?/usr/lib/x86_64-linux-gnu/nss/libnssckbi.so
->/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so
fonctionnait comme un CHARM. J'ai pu ajouter un certificat dans/usr/local/share/ca-certificates
, exécutersudo update-ca-certificates
et PRESTO. Chrome a commencé à accepter les certificats auto-signés.Sérieusement stupide réponse à ajouter ici, mais j'avais passé 2 heures à faire des allers-retours avec certutils sous Linux ... J'étais sûre que tout était correct:
Mais encore, en chrome rien ne fonctionnait. J'ai tout essayé, finalement ...
Restarting Chrome
Était la clé de mon succès après avoir suivi: le conseil de Steven Monday
la source