Vérifier les packages pour les certificats expirés sous Mac OS X
Table des matières:
De nombreux utilisateurs de Mac téléchargent des fichiers de package de mises à jour combinées ou d'autres logiciels afin de les installer sur plusieurs ordinateurs, évitant ainsi la mise à jour avec le Mac App Store. Ceci est particulièrement courant avec les administrateurs de systèmes Mac, où il est plus logique de télécharger une seule mise à jour ou programme d'installation de package et de le distribuer sur un réseau ou peut-être de l'installer manuellement via une clé USB.Il n'y a rien de mal à cette approche, et en fait c'est beaucoup plus efficace pour la gestion multi-Mac, mais un problème potentiel survient lorsqu'un programme d'installation de package ou un fichier de mise à jour a un certificat expiré, ce qui empêchera le package de s'installer entièrement, un situation qui devient évidente lorsque vous obtenez un message d'erreur "(l'installateur de l'application) a été signé avec un certificat qui a expiré".
Pour éviter cette situation, vous pouvez vérifier vous-même les signatures des paquets pour voir si elles sont valides, si elles ont expiré ou même si elles n'ont aucune signature.
Comment vérifier l'état de la signature d'un package sous Mac OS X avec pkgutil
L'excellent utilitaire de ligne de commande pkgutil peut facilement déterminer l'état de n'importe quelle signature de package et de n'importe quel certificat. C'est facile à utiliser, alors lancez l'application Terminal à partir de /Applications/Utilitaires/ et essayez-la vous-même.
La syntaxe de base à utiliser pour vérifier l'état d'une signature de package est la suivante :
pkgutil --check-signature /Path/to/Example.pkg
Appuyez sur retour et vous saurez si la signature est valide, si la signature a expiré ou s'il n'y a pas de signature du tout.
Par exemple, supposons que nous ayons un package d'installation de logiciel Mac OS X Combo Update, un scénario courant pour les administrateurs système mettant à jour plusieurs Mac, vous pouvez vérifier l'état de la signature de ce package comme suit :
"pkgutil --check-signature ~/Downloads/OSXUpdateCombo10.10.2.pkg Package OSXUpdateCombo10.10.2.pkg : État : signé par un certificat qui a expiré depuis "
Dans ce cas, la signature du package de mise à jour a expiré, ce qui signifie qu'il générera une erreur en cas de tentative d'utilisation.
Cependant, tous les programmes d'installation de packages n'ont pas de signatures, et bien que n'importe quel fichier de mise à jour logicielle d'Apple le soit, les packages de tiers n'en ont souvent pas.Par exemple, cet exemple de fichier d'installation de package n'a pas de signature et doit être traité de manière appropriée (c'est-à-dire que si vous ne faites pas confiance à la source, envisagez peut-être de l'utiliser).
"pkgutil --check-signature ~/Downloads/MysterySketchyInstaller-21.pkg Package MysterySketchyInstaller-21.pkg : État : pas de signature "
Si un fichier de package est douteux, vous pouvez vérifier la signature de code et extraire le package sans l'installer avec pkgutil pour lui donner une inspection plus approfondie, ou si vous préférez utiliser l'interface graphique, une application comme Pacifist offre des outils de gestion de paquets similaires dans une interface plus conviviale, même si c'est toujours du côté avancé des choses.
Comme tous les bons outils de ligne de commande, vous pouvez même utiliser des caractères génériques pkgutil pour vérifier facilement plusieurs packages en même temps. Dans cet exemple, nous vérifierons la signature de chaque fichier .pkg contenu dans ~/ Téléchargements :
pkgutil --check-signature ~/Downloads/.pkg Paquet irssi-0.8.17-0.pkg : État : pas de signature "
"Package wget-4.8.22-0.pkg : État : pas de signature"
"Package ComboUpdateOSXElCapitan.pkg : Statut : signé par un certificat qui a expiré depuis"
"Package InstallOSXSequoiaBeta.pkg : État : valide"
"Package HRFDeveloperTools.pkg : État : valide"
Les caractères génériques permettent de vérifier rapidement l'état du certificat de nombreux fichiers de packages différents. Assurez-vous simplement de spécifier .pkg pour que le processus se termine sans s'arrêter sur un fichier qui n'est pas un package reconnu.