Controleer pakketten voor verlopen certificaten in Mac OS X
Veel Mac-gebruikers zullen pakketbestanden van combo-updates of andere software downloaden om ze op meerdere computers te installeren, waardoor ze de update met de Mac App Store vermijden. Dit komt met name voor bij Mac-systeembeheerders, waar het zinvoller is om één pakketupdate of -installatieprogramma één keer te downloaden en over een netwerk te distribueren of misschien handmatig via een USB-station te installeren. Er is helemaal niets mis met deze aanpak, en in feite is het veel efficiënter voor multi-Mac-beheer, maar een potentiële hapering komt aan wanneer een pakketinstaller of updatebestand een verlopen certificaat heeft, wat zal voorkomen dat het pakket volledig wordt geïnstalleerd, een situatie die duidelijk wordt wanneer u een foutmelding krijgt dat er een "(toepassingsinstallatieprogramma) is ondertekend met een certificaat dat is verlopen" is.
Om deze situatie te voorkomen, kunt u handtekeningen van pakketten zelf controleren om te zien of ze geldig zijn, of ze verlopen zijn of zelfs helemaal geen handtekening hebben.
De status van de pakkethandtekening controleren in Mac OS X met pkgutil
Het uitstekende command-hulpprogramma voor pkgutil kan eenvoudig de status van elke pakketsignatuur en -certificaat bepalen. Het is gemakkelijk te gebruiken, dus start de Terminal-app vanuit / Applications / Utilities / en probeer het zelf uit.
De basissyntaxis die moet worden gebruikt om de status van een pakketsignatuur te controleren, is als volgt:
pkgutil --check-signature /Path/to/Example.pkg
Druk op Terug en u zult ontdekken of de handtekening geldig is, of de handtekening is verlopen, of dat er helemaal geen handtekening is.
Laten we bijvoorbeeld zeggen dat we een Mac OS X Combo Update software-installatiepakket hebben, een veelvoorkomend scenario voor sysadmins die meerdere Macs updaten, je zou de status van die pakkettenhandtekening als volgt kunnen controleren:
pkgutil --check-signature ~/Downloads/OSXUpdateCombo10.10.2.pkg
Package "OSXUpdateCombo10.10.2.pkg":
Status: signed by a certificate that has since expired
In dit geval is de handtekening voor het updatepakket verlopen, wat betekent dat er een fout wordt gegenereerd als u probeert het gebruik te proberen.
Niet alle pakketinstallateurs hebben echter handtekeningen en hoewel elk software-updatebestand van Apple dat wel doet, worden pakketten van derden vaak niet gebruikt. Dit installatiebestand van het voorbeeldpakket heeft bijvoorbeeld geen handtekening en moet op de juiste manier worden behandeld (als u de bron niet vertrouwt, moet u het misschien opnieuw gebruiken).
pkgutil --check-signature ~/Downloads/MysterySketchyInstaller-21.pkg
Package "MysterySketchyInstaller-21.pkg":
Status: no signature
Als een pakketbestand twijfelachtig is, kunt u de codesignatuur verifiëren en het pakket uitpakken zonder het te installeren met pkgutil om het een nadere inspectie te geven, of als u de GUI wilt gebruiken, dan biedt een app zoals Pacifist vergelijkbare pakketbeheertools in een vriendelijker interface, zelfs als het nog steeds geavanceerd is.
Zoals alle goede opdrachtregelprogramma's, kunt u zelfs pkgutil-wildcards invoeren om eenvoudig meerdere pakketten tegelijkertijd te controleren, in dit voorbeeld controleren we de handtekening van elk * .pkg-bestand in ~ / Downloads:
pkgutil --check-signature ~/Downloads/*.pkg
Package "irssi-0.8.17-0.pkg":
Status: no signature
Pakket "wget-4.8.22-0.pkg":
Status: geen handtekening
Pakket "ComboUpdateOSXElCapitan.pkg":
Status: ondertekend door een certificaat dat sindsdien is verlopen
Pakket "InstallOSXSequoiaBeta.pkg":
Status: geldig
Pakket "HRFDeveloperTools.pkg":
Status: geldig
In jokertekens wordt snel gecontroleerd of de certificaatstatus van veel verschillende pakketbestanden is gecontroleerd. Zorg er wel voor dat u * .pkg opgeeft voor het voltooien van het proces zonder te stoppen in een bestand dat geen erkend pakket is.