33 votes

Comment mettre à jour mes certificats racine sur une ancienne version de Mac OS (par exemple El Capitan) ?

J'ai des difficultés à accéder à divers sites Web sécurisés. Ils me donnent une erreur de certificat expiré. Ils fonctionnent sur Firefox mais pas sur Safari ou Chrome. Ils fonctionnent également sur les nouvelles versions de MacOS (par exemple, Catalina, Big Sur). Cela semble être dû au fait que Safari et Chrome utilisent le magasin de certificats racine de l'OS et que Firefox utilise le sien, et qu'El Capitan n'est pas mis à jour.

Desde aquí il y en a :

  • Les certificats de confiance établissent une chaîne de confiance qui vérifie les autres certificats signés par les racines de confiance - par exemple, pour établir une connexion sécurisée à un serveur web. Lorsque les administrateurs informatiques créent des profils de configuration, il n'est pas nécessaire d'inclure ces certificats racine de confiance.
  • Les certificats de Always Ask ne sont pas fiables mais ne sont pas bloqués. Lorsque l'un de ces certificats est utilisé, vous êtes invité à choisir si vous voulez lui faire confiance ou non.
  • Les certificats bloqués sont considérés comme compromis et ne seront jamais fiables.

On y trouve une liste d'empreintes digitales des certificats actuels, mais pas de paquets de certificats téléchargeables.

Comment mettre à jour mes certificats racine sur une ancienne version d'OS X 10.11 ?

0 votes

50voto

abligh Points 691

La façon la plus simple de procéder est de transférer vos certificats racine du système à partir d'un autre Mac auquel vous avez accès et qui fonctionne avec une version plus moderne de MacOS. (Pourquoi ne pas simplement les télécharger ? Voir la remarque à la fin de cette réponse).

  1. Trouvez d'abord le Mac le plus moderne avec un ensemble fonctionnel de certificats racine du système (c'est-à-dire qui peut accéder aux sites Web problématiques).
  2. Sur ce Mac, lancez Keychain Access, sélectionnez "System Roots", sélectionnez tous les certificats, sélectionnez File->Export, et exportez-les en tant que rootcerts.pem fichier. Ce fichier contiendra tous les certificats concaténés.
  3. Copiez le rootcerts.pem sur votre ancien mac
  4. Faites le shell trustroot script ci-dessous, par exemple en le copiant dans un fichier, puis en utilisant chmod 755 trustroot
  5. Exécuter sudo ./trustroot rootcerts.pem

    !/bin/bash

    DIR=${TMPDIR}/trustroot.$$ mkdir -p ${DIR} trap "rm -rf ${DIR}" EXIT cat "$1" | (cd $DIR && split -p '-----BEGIN CERTIFICATE-----' - cert- ) for c in ${DIR}/cert-* ; do security -v add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "$c" done rm -rf ${DIR}

Ce que fait le script, c'est qu'il divise les .pem en un certain nombre de certificats dans le répertoire temporaire concerné, puis les ajoute en tant que trustRoot à la chaîne de clés du système ; ils fonctionneront alors comme des racines de confiance en plus des certificats de la chaîne de clés originale "Racines du système". Au cas où vous vous poseriez la question, vous ne pouvez pas les ajouter au trousseau Racines du système, car celui-ci ne peut être mis à jour que par le système d'exploitation.

Notez que cette copie recouvre le premier groupe de certificats ( "Certificats de confiance" dans la question), mais pas la deuxième ni la troisième.

Félicitations à cette réponse pour un indice.


Vous vous demandez peut-être pourquoi je n'ai pas simplement mis un lien vers un ensemble de certificats plus modernes quelque part sur le web. Après tout, cela vous permettrait de sauter les étapes 1 à 3, et de télécharger tout simplement rootcerts.pem . La réponse est que vous n'auriez aucun moyen de savoir que je n'ai pas trafiqué les certificats racine et inséré l'un des miens, ce qui me permettrait de me faire passer pour n'importe quel site web en créant un faux certificat signé avec mon propre certificat racine. Veuillez donc considérer avec un extrême scepticisme tout conseil visant à résoudre ce problème en téléchargeant des certificats racine. de n'importe où, sauf si vous pouvez vérifier indépendamment la provenance de ces certificats.

0 votes

J'obtiens cette erreur en suivant votre guide Error reading file /cert-*

0 votes

@TheCrazyProfessor - C'est étrange. En supposant que vous avez copié le script exactement, cela impliquerait que DIR n'est pas défini. Pouvez-vous insérer une ligne au-dessus de for c ... en disant echo DIR is '"'$DIR'"' et voyez si vous obtenez quelque chose comme DIR is "/var/folders/_r/[something]/T/trustroot.[something]" - si ce n'est pas le cas, vérifiez d'abord que TMPDIR est configuré à quelque chose (par exemple, faire export TMPDIR=/tmp avant d'exécuter le script)

0 votes

J'ai trouvé ça : DIR is "" Je ne sais pas si vous voulez dire que je vais écrire export TMPDIR=/tmp dans la console ou dans le script mais en tout cas j'ai essayé les deux. Aucun résultat... Y a-t-il un dossier spécifique à partir duquel je dois exécuter le script ?

5voto

Josh Points 541

Pour tous ceux qui n'ont pas accès à une installation Apple OS à jour : vous pouvez télécharger le certificat racine à cause (celui-là exclusivement) du site de l'émetteur et l'installer. Les instructions sont les suivantes aquí mais vérifiez bien où dans Keychain Access votre système a stocké le certificat R3 expiré (cela pourrait être "System Roots" au lieu de "System").

Les MacPorts ont un port ( apple-pki-bundle ) qui installe un fichier .pem contenant un tas de certificats téléchargés d'Apple, GeoTrust et DigiCert ( source du port ici . Pour le moment, il n'inclut pas le certificat ISRG, mais je suppose qu'il contient au moins un certain nombre de certificats que vous obtiendriez avec la recette décrite ci-dessus. L'addition de contrôle permet de s'assurer que vous obtenez les certificats voulus ; AFAICT vous devrez ajouter le paquet aux certificats racine de votre système vous-même.

0 votes

Pour que cette opération soit sécurisée, vous devez faire confiance (d'une autre manière, c'est-à-dire sans utiliser leur propre certificat racine) au site Web à partir duquel vous téléchargez le certificat racine. De plus, cette opération ne mettra à jour qu'un seul certificat racine, alors que le paquet contient plusieurs dizaines de certificats racine.

0 votes

Ma réponse indique que c'est le certificat qui pose problème pour le moment. Il est téléchargé sur le site de l'organisation qui l'émet. Je ne vois pas vraiment comment vous pouvez faire mieux - si un certificat racine doit être signé par une entité indépendante, ce n'est plus un certificat racine AFAICT.

3voto

Eduardo Bonato Points 11

J'ai essayé ces instructions sur un vieil iMac Early 2009 avec El Capitan (10.11.6)

Certains systèmes d'exploitation conservent la chaîne expirée R3 > DST Root CA X3 même si votre serveur ne l'utilise plus. Essayez de redémarrer le périphérique client concerné.

Pour les anciens MacOS non mis à jour par Apple :

  • Téléchargez le fichier du certificat Root X1 de l'IRSG à partir de l'adresse suivante http://x1.i.lencr.org/
  • Ouvrez l'application Keychain Access et faites glisser ce fichier dans le dossier Système de cette application.
  • Trouvez le certificat ISRG Root X1 dans Système et double-cliquez dessus, ouvrez le menu Confiance et changez "Utiliser les paramètres par défaut du système" en "Toujours faire confiance", puis fermez ce menu et entrez votre mot de passe pour confirmer le changement (si vous y êtes invité).

tout devient fonctionner comme prévu.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X