J'ai généré un certificat auto-signé pour mon serveur de build et je voudrais faire confiance au certificat sur ma machine, car j'ai créé la clé moi-même et j'en ai marre de voir des avertissements.
Je suis sur Ubuntu 12.04. Comment puis - je prendre le certificat et la confiance dans le monde afin que les navigateurs (Google Chrome), les services publics CLI (wget, curl), et les langages de programmation (Python, Java, etc.) font confiance à la connexion à https://mysite.com sans demander des questions?
Réponses:
La réponse simple à cette question est que chaque application le traitera différemment.
OpenSSL et GNUTLS (les bibliothèques de traitement de certificats les plus largement utilisées pour traiter les certificats signés) se comportent différemment dans le traitement des certificats, ce qui complique également le problème. De plus, les systèmes d'exploitation utilisent différents mécanismes pour utiliser la "racine" utilisée par la plupart des sites Web.
Cela mis à part, en donnant l'exemple de Debian. Installez le
ca-certificates
paquet:Vous copiez ensuite la moitié publique de votre certificat de CA non approuvé (celui que vous utilisez pour signer votre CSR) dans le répertoire du certificat de CA (en tant que root):
Et faites-le reconstruire le répertoire avec votre certificat inclus, lancez en tant que root:
et sélectionnez l'
ask
option, faites défiler jusqu'à votre certificat, marquez-le pour l'inclusion et sélectionnez ok.La plupart des navigateurs utilisent leur propre base de données d'autorité de certification et des outils tels que ceux-ci
certutil
doivent donc être utilisés pour modifier leur contenu (sur Debian fournie par lelibnss3-tools
paquet). Par exemple, avec Chrome, vous exécutez quelque chose dans le sens suivant:Firefox vous permettra de rechercher le certificat sur le disque, de reconnaître un fichier de certificat, puis de l’importer dans la liste des autorités de certification racines.
La plupart des autres commandes, telles que les
curl
options de prise de ligne de commande que vous pouvez utiliser pour pointer sur votre autorité de certification,ou abandonner complètement la validation SSL
Le reste nécessitera une enquête individuelle si le
ca-certificates
même truc ne le règle pas pour cette application particulière.la source
dpkg-reconfigure ca-certificates
liste. Qu'est-ce que je fais mal?whatever.pem
àwhatever.crt
..cer
, et cela n'a pas fonctionné. J'ai dû le renommer.crt
pour qu'il soit reconnu.Approche non interactive
Pour une utilisation dans un contexte non interactif (par exemple, une recette de chef), vous pouvez utiliser la séquence suivante.
man update-ca-certificates
Cette méthode est préférable à celle de @ Drav, car elle
/usr/share/
est généralement réservée aux fichiers ajoutés par le système d'exploitation /apt-get
.la source
/usr/local/share/ca-certificates/
comme indiqué dans les pages de.crt
, j'ai trouvé.cert
réclamé qu'il a été ajouté mais n'a pas aidéSur Fedora 23, ajoutez le fichier .pem ou .der à
/etc/pki/ca-trust/source/anchors/
et exécutez-lesudo update-ca-trust extract
.Voir
man update-ca-trust
pour plus de détails, par exemple s'il faut utiliser / etc ou / usr.la source
En centos:
la source
openssl connect
je spécifier un dossier / anchors? Je reçois toujours une erreur "self signed certs
Approche non interactive (octobre 18)
pour les systèmes récents basés sur Debian
Il y a une différence entre ajouter un certificat au magasin de l'hôte et l'activer pour que les applications l'utilisent vraiment. Un certificat existant dans le magasin n'est pas nécessairement utilisé (bien que je dois admettre que beaucoup de paquets se trompent quand même)
Cela peut être déroutant lorsque vous configurez un paquet qui considère
/etc/ca-certificate.conf
et refuse simplement d'utiliser votre certificat alors qu'il a été ajouté sans erreur. Vous devez indiquerupdate-ca-certificates
explicitement (non seulement copier mais) activer le certificat en l'ajoutant à/etc/ca-certificate.conf
ou/etc/ca-certificate/update.d
.Maintenant, ici, cela devient confus car il existe un moyen de faire implicitement confiance à un certificat en utilisant un chemin différent:
la source