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
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.
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.
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
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
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
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.
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
-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*
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.