Sjekk pakker for utløpte sertifikater i Mac OS X

Mange Mac-brukere vil laste ned pakkefiler med kombinasjonsoppdateringer eller annen programvare for å installere dem på flere datamaskiner, og dermed unngå oppdatering med Mac App Store. Dette er spesielt vanlig med Mac-systemadministratorer, der det er mer fornuftig å laste ned en enkelt oppdateringspakke eller installasjonsprogram en gang, og distribuere den over et nettverk eller installere manuelt via en USB-stasjon. Det er ingenting galt med denne tilnærmingen i det hele tatt, og faktisk er det mye mer effektivt for multi-Mac-styring, men en potensiell hikke kommer når en pakkeinstallasjons- eller oppdateringsfil har et utløpt sertifikat, som forhindrer at pakken installeres helt, en situasjon som blir tydelig når du får en "(applikasjonsinstallatør) ble signert med et sertifikat som er utløpt" feilmelding.

For å unngå denne situasjonen kan du sjekke pakkedesignaturene selv for å se om de er gyldige, hvis de er utløpt, eller om de ikke har noen signatur i det hele tatt.

Slik kontrollerer du pakke signaturstatus i Mac OS X med pkgutil

Den utmerkede pkgutil kommandolinjeverktøyet kan enkelt bestemme statusen til enhver pakke signatur og sertifikat. Det er enkelt å bruke, så start Terminal-appen fra / Programmer / Verktøy / og prøv det selv.

Den grunnleggende syntaksen som skal brukes til å sjekke en signaturstatus for pakken, er som sådan:

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

Hit retur og du vil finne ut om signaturen er gyldig, hvis signaturen er utløpt, eller hvis det ikke er noen signatur i det hele tatt.

For eksempel, la oss si at vi har en Mac OS X Combo Update-programvareinstallasjonspakke, et vanlig scenario for sysadminer som oppdaterer flere Mac-maskiner. Du kan sjekke statusen til pakkenes signatur som:

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

I dette tilfellet er signaturen for oppdateringspakken utløpt, noe som betyr at det vil kaste en feil hvis bruk er forsøkt.

Ikke alle pakkeinstallatører har signaturer, og mens noen programvareoppdateringsfil fra Apple vil, vil pakker fra tredjepart ofte ikke. Eksempelvis har denne installasjonsfilen til denne pakken ingen signatur, og bør behandles på riktig måte (dvs. hvis du ikke stoler på kilden, kan du kanskje vurdere å bruke den).

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

Hvis en pakkefil er tvilsom, kan du bekrefte kodesignaturen og pakke ut pakken uten å installere den med pkgutil for å gi den en ytterligere inspeksjon, eller hvis du foretrekker å bruke GUI, vil en app som Pacifist tilby lignende pakkehåndteringsverktøy i en vennligere grensesnitt, selv om det fortsatt er på den avanserte siden.

Som alle gode kommandolinjeverktøy kan du til og med matte pkgutil jokertegn for å enkelt sjekke flere pakker samtidig. I dette eksemplet vil vi sjekke signaturen til alle * .pkg-filene som finnes i ~ / Nedlastinger:

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

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

Pakke "ComboUpdateOSXElCapitan.pkg":
Status: Signert av et sertifikat som siden er utløpt

Pakke "InstallOSXSequoiaBeta.pkg":
Status: gyldig

Pakke "HRFDeveloperTools.pkg":
Status: gyldig

Wildcards vil gjøre rask arbeid med å sjekke sertifikatstatus for mange forskjellige pakkefiler, bare vær sikker på at du spesifiserer * .pkg for at prosessen skal fullføres uten å stoppe på en fil som ikke er en anerkjent pakke.