web-dev-qa-db-fra.com

Emplacement de l'ensemble de certificats CA par défaut

Je dois ajouter un fichier de certificat .pem à mon ensemble de certificats CA par défaut, mais je ne sais pas où le groupe de certificats CA par défaut est conservé.

J'ai besoin d'ajouter mon nouveau fichier .pem à ce bundle par défaut. Je préfère faire cela plutôt que de spécifier mon propre emplacement en utilisant --capath

cURL sait clairement où chercher, mais je ne vois aucune commande cURL qui révèle l'emplacement. Existe-t-il une commande qui révélera cet emplacement? Comment le trouver?

selon cURL:
Ajoutez le certificat CA de votre serveur à l'ensemble de certificats CA par défaut existant. Le chemin par défaut du bundle CA utilisé peut être modifié en exécutant configure avec l'option --with-ca-bundle indiquant le chemin de votre choix.

Merci

22
Slinky

L'exécution de curl avec strace peut vous donner un indice.

 strace curl https://www.google.com | & grep open 

Beaucoup de sortie, mais juste à la fin je vois:

 ouvert ("/ etc/ssl/certs/578d5c04.0", O_RDONLY) = 4 

qui est où mes certificats sont stockés.

22
Flup

Il devrait y avoir un programme 'curl-config' dans 'bin /' de curl, c'est-à-dire où réside le binaire 'curl'.

./curl-config --ca

donne le chemin d'installation du bundle ca.

Je viens de faire un whatis curl-config: "Obtenir des informations sur une installation de libcurl" donc je suppose que cela ne sera disponible que si libcurl a été installé, ce qui, je suppose, est standard.

18
lm713

J'ai trouvé un moyen simple: utilisez le --cacert avec un nom de fichier incorrect, la sortie affichera le chemin.

Exemple:

~$ curl --cacert non_existing_file https://www.google.com
curl: (77) error setting certificate verify locations:
  CAfile: non_existing_file
  CApath: /etc/ssl/certs
10
Chananel P

Linux (Ubuntu, Debian)

Copiez votre autorité de certification dans dir/usr/local/share/ca-certificats /

Sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt

Mettre à jour le magasin CA

Sudo update-ca-certificates

Supprimez votre CA et mettez à jour le magasin de CA:

Sudo update-ca-certificates --fresh

Linux (CentOs 6)

Installez le paquet ca-certificats:

yum install ca-certificates

Activez la fonction de configuration dynamique de l'AC: update-ca-trust force-enable Ajoutez-le en tant que nouveau fichier à /etc/pki/ca-trust/source/anchors/:

cp foo.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust extract

Linux (CentOs 5)

Ajoutez votre certificat de confiance au fichier /etc/pki/tls/certs/ca-bundle.crt

cat foo.crt >>/etc/pki/tls/certs/ca-bundle.crt

https://manuals.gfi.com/en/kerio/connect/content/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html lien très agréable, qui explique, comment l'ajouter à plusieurs OS populaires.

4
BiG_NoBoDy

vous pouvez télécharger le pack de certificats racine CA à partir de haxx.se qui sont les créateurs de curl. puis ajoutez simplement votre certificat dans leur .pem et faites-y référence lorsque vous utilisez curl avec l'option --cacert

2
iammyr

-v avec https dans l'URL.

$ curl -v https://google.com
* Rebuilt URL to: https://google.com/
* timeout on name lookup is not supported
*   Trying 172.217.9.174...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to google.com (172.217.9.174) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   *CAfile: C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt*
1
Philip Rego

L'emplacement par défaut du bundle CA dépend du système d'exploitation. Sur RHEL5, il se trouve dans /etc/pki/tls/certs/ca-bundle.pem. Sur d'autres versions de systèmes d'exploitation Linux ou non Linux, il peut se trouver dans un emplacement différent.

0
John