Kontrollera paket för utgått certifikat i Mac OS X

Många Mac-användare laddar ner paketfiler av kombinationsuppdateringar eller annan programvara för att installera dem på flera datorer, vilket förhindrar uppdatering med Mac App Store. Detta är särskilt vanligt med administratörer av Mac-system, där det är mer meningsfullt att ladda ner en enda paketuppdatering eller installationsprogram en gång och distribuera den över ett nätverk eller kanske installera manuellt via en USB-enhet. Det är inget fel med detta tillvägagångssätt alls och det är faktiskt mycket effektivare för multi-Mac-hantering, men en potentiell hiccup kommer när en paketinstallations- eller uppdateringsfil har ett utgått certifikat, vilket förhindrar att paketet installeras helt, en situation som blir uppenbart när du får en "(programinstallatör) har skrivits med ett certifikat som har löpt ut" felmeddelande.

För att undvika denna situation kan du själv kolla paketet signaturer för att se om de är giltiga, om de har gått ut eller om de inte alls har någon signatur.

Så här kontrollerar du paketets signaturstatus i Mac OS X med pkgutil

Det utmärkta pkgutil kommandoradsverktyget kan enkelt bestämma statusen för alla paket signaturer och certifikat. Det är lätt att använda, så starta Terminal-appen från / Program / Verktyg / och prova själv.

Den grundläggande syntaksen som ska användas för att kontrollera status för paketets signatur är som sådan:

pkgutil --check-signature /Path/to/Example.pkg

Hit tillbaka och du kommer ta reda på om signaturen är giltig, om signaturen har löpt ut, eller om det inte alls finns någon signatur.

Låt oss till exempel säga att vi har ett Mac OS X Combo Update-programvaruinstallationspaket, ett vanligt scenario för sysadmins som uppdaterar flera Mac-datorer. Du kan kontrollera statusen för den här paketens underskrift så här:

pkgutil --check-signature ~/Downloads/OSXUpdateCombo10.10.2.pkg
Package "OSXUpdateCombo10.10.2.pkg":
Status: signed by a certificate that has since expired

I detta fall har signaturen för uppdateringspaketet löpt ut, vilket innebär att det kommer att kasta ett fel om användningen försöker.

Inte alla paketinstallatörer har signaturer, och medan någon programuppdateringsfil från Apple kommer, kommer paket från tredje part ofta inte. Exempelvis har denna installationspaket för exemplarpaketet ingen signatur och bör behandlas på rätt sätt (dvs. om du inte litar på källan, kanske ompröva användningen av den).

pkgutil --check-signature ~/Downloads/MysterySketchyInstaller-21.pkg
Package "MysterySketchyInstaller-21.pkg":
Status: no signature

Om en paketfil är tveksam kan du verifiera kodsignaturen och extrahera paketet utan att installera det med pkgutil för att ge det ytterligare kontroll, eller om du föredrar att använda GUI-enheten, erbjuder en app som Pacifist liknande pakethanteringsverktyg i en vänligare gränssnitt, även om det fortfarande finns på den avancerade sidan av sakerna.

Liksom alla bra kommandoradsverktyg kan du till och med mata pkgutil jokertecken för att enkelt kontrollera flera paket samtidigt. I det här exemplet ska vi undersöka signaturen för varje * .pkg-fil som finns i ~ / Nedladdningar:

pkgutil --check-signature ~/Downloads/*.pkg
Package "irssi-0.8.17-0.pkg":
Status: no signature

Paketet "wget-4.8.22-0.pkg":
Status: Ingen signatur

Paket "ComboUpdateOSXElCapitan.pkg":
Status: Undertecknad av ett certifikat som sedan har gått ut

Paketet "InstallOSXSequoiaBeta.pkg":
Status: Giltigt

Paketet "HRFDeveloperTools.pkg":
Status: Giltigt

Vildkort kommer att göra ett snabbt arbete med att kontrollera certifikatstatus för många olika paketfiler, var noga med att du anger * .pkg för att processen ska slutföras utan att stoppa en fil som inte är ett erkänt paket.