Überprüfen Sie Pakete auf abgelaufene Zertifikate in Mac OS X

Viele Mac-Benutzer laden Paketdateien von Combo-Updates oder anderer Software herunter, um sie auf mehreren Computern zu installieren, wodurch eine Aktualisierung mit dem Mac App Store vermieden wird. Dies ist besonders bei Mac-Systemadministratoren der Fall, wo es sinnvoller ist, ein einzelnes Paket-Update oder Installationsprogramm einmal herunterzuladen und über ein Netzwerk zu verteilen oder es möglicherweise manuell über ein USB-Laufwerk zu installieren. Es ist nichts falsch an diesem Ansatz, und tatsächlich ist es viel effizienter für Multi-Mac-Management, aber ein potenzieller Schluckauf kommt, wenn ein Paketinstallationsprogramm oder Update-Datei ein abgelaufenes Zertifikat hat, das die Installation des Pakets vollständig verhindert, a Situation, die offensichtlich wird, wenn Sie eine Fehlermeldung "(Anwendungs-Installer wurde mit einem abgelaufenen Zertifikat signiert") erhalten.

Um dies zu vermeiden, können Sie Paketsignaturen selbst prüfen, um festzustellen, ob sie gültig sind, ob sie abgelaufen sind oder ob sie überhaupt keine Signatur haben.

Überprüfen des Paketsignaturstatus in Mac OS X mit pkgutil

Das ausgezeichnete Befehlszeilenprogramm pkgutil kann den Status jeder Paketsignatur und jedes Zertifikats leicht ermitteln. Es ist einfach zu bedienen, also starten Sie die Terminal-App von / Applications / Utilities / und probieren Sie es selbst aus.

Die grundlegende Syntax für die Überprüfung eines Paketsignaturstatus lautet wie folgt:

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

Drücken Sie die Eingabetaste und Sie werden feststellen, ob die Signatur gültig ist, ob die Signatur abgelaufen ist oder ob überhaupt keine Signatur vorhanden ist.

Nehmen wir beispielsweise an, wir haben ein Installationsprogramm für die Mac OS X Combo Update-Software, ein gängiges Szenario für die Aktualisierung mehrerer Macs durch Systemadministratoren. Sie könnten den Status der Signatur dieser Pakete wie folgt überprüfen:

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

In diesem Fall ist die Signatur für das Update-Paket abgelaufen, dh es wird ein Fehler ausgegeben, wenn die Verwendung versucht wird.

Nicht alle Paket-Installer haben jedoch Signaturen, und während Software-Update-Dateien von Apple, werden Pakete von Dritten oft nicht. Diese Beispieldatei für das Paketinstallationsprogramm enthält beispielsweise keine Signatur und sollte entsprechend behandelt werden (dh wenn Sie der Quelle nicht vertrauen, sollten Sie sie möglicherweise erneut verwenden).

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

Wenn eine Paketdatei zweifelhaft ist, können Sie die Codesignatur verifizieren und das Paket extrahieren, ohne es mit pkgutil zu installieren, um es erneut zu inspizieren. Wenn Sie lieber die GUI verwenden möchten, bietet eine App wie Pacifist ähnliche Paketverwaltungs-Tools Schnittstelle, auch wenn es immer noch auf der fortgeschrittenen Seite der Dinge ist.

Wie alle guten Kommandozeilen-Tools können Sie auch pkgutil-Platzhalter verwenden, um mehrere Pakete gleichzeitig zu überprüfen. In diesem Beispiel überprüfen wir die Signatur jeder * .pkg-Datei, die in ~ / Downloads enthalten ist:

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

Paket "wget-4.8.22-0.pkg":
Status: keine Unterschrift

Paket "ComboUpdateOSXElCapitan.pkg":
Status: Signiert von einem Zertifikat, das seither abgelaufen ist

Paket "InstallOSXSequoiaBeta.pkg":
Status: gültig

Paket "HRFDeveloperTools.pkg":
Status: gültig

Mit Platzhaltern können Sie schnell den Zertifikatsstatus vieler verschiedener Paketdateien überprüfen. Stellen Sie jedoch sicher, dass Sie * .pkg angeben, damit der Vorgang abgeschlossen werden kann, ohne eine Datei anzuhalten, die kein erkanntes Paket ist.