Проверка пакетов на наличие просроченных сертификатов в Mac OS X

Оглавление:

Anonim

Многие пользователи Mac загружают пакетные файлы комбинированных обновлений или другого программного обеспечения, чтобы установить их на несколько компьютеров, тем самым избегая обновления через Mac App Store. Это особенно характерно для системных администраторов Mac, где имеет смысл загрузить одно обновление пакета или установщик один раз и распространить его по сети или, возможно, установить вручную с помощью USB-накопителя.В этом подходе нет ничего плохого, и на самом деле он намного эффективнее для управления несколькими Mac, но возникает одна потенциальная заминка, когда установщик пакета или файл обновления имеют просроченный сертификат, что не позволяет полностью установить пакет, а ситуация, которая становится очевидной, когда вы получаете сообщение об ошибке «(установщик приложения) был подписан с сертификатом, срок действия которого истек».

Чтобы избежать этой ситуации, вы можете самостоятельно проверить подписи пакетов, чтобы убедиться, что они действительны, срок их действия истек или даже у них нет подписи вообще.

Как проверить статус подписи пакета в Mac OS X с помощью pkgutil

Отличная утилита командной строки pkgutil может легко определить статус подписи и сертификата любого пакета. Им легко пользоваться, поэтому запустите приложение «Терминал» из /Applications/Utilities/ и попробуйте сами.

Основной синтаксис для проверки статуса подписи пакета выглядит следующим образом:

pkgutil --check-signature /Путь/к/Example.pkg

Нажмите «Ввод», и вы узнаете, действительна ли подпись, истек ли срок ее действия или подписи вообще нет.

Например, предположим, что у нас есть пакет установщика программного обеспечения Mac OS X Combo Update, распространенный сценарий для системных администраторов, обновляющих несколько компьютеров Mac, вы можете проверить статус подписи этого пакета следующим образом:

"

pkgutil --check-signature ~/Downloads/OSXUpdateCombo10.10.2.pkg Пакет OSXUpdateCombo10.10.2.pkg: Статус: подписан сертификатом, срок действия которого истек "

В этом случае срок действия подписи пакета обновлений истек, что означает, что при попытке использования будет выдана ошибка.

Не все установщики пакетов имеют сигнатуры, и хотя любой файл обновления программного обеспечения от Apple сигнатуры имеют, пакеты от третьих сторон часто не имеют сигнатур.Например, этот пример файла установки пакета не имеет подписи, и с ним следует обращаться соответствующим образом (т. е. если вы не доверяете источнику, возможно, пересмотрите его использование).

"

pkgutil --check-signature ~/Downloads/MysterySketchyInstaller-21.pkg Пакет MysterySketchyInstaller-21.pkg: Статус: нет подписи "

Если файл пакета вызывает сомнения, вы можете проверить подпись кода и извлечь пакет, не устанавливая его с помощью pkgutil, чтобы провести дополнительную проверку, или, если вы предпочитаете использовать графический интерфейс, тогда приложение, такое как Pacifist предлагает аналогичные инструменты управления пакетами в более удобном интерфейсе, даже если он все еще находится на продвинутой стороне.

Как и во всех хороших инструментах командной строки, вы даже можете передать подстановочные знаки pkgutil, чтобы легко проверять несколько пакетов одновременно, в этом примере мы проверим подпись каждого файла .pkg, содержащегося в ~/ Загрузки:

"

pkgutil --check-signature ~/Downloads/.pkg Пакет irssi-0.8.17-0.pkg: Статус: нет подписи "

"Пакет wget-4.8.22-0.pkg: Статус: нет подписи"

"Package ComboUpdateOSXElCapitan.pkg: Статус: подписан сертификатом, срок действия которого истек"

"Пакет InstallOSXSequoiaBeta.pkg: Статус: действительный"

"

Пакет HRFDeveloperTools.pkg: Статус: действительный"

Подстановочные знаки позволяют быстро проверить статус сертификата многих различных файлов пакетов, просто убедитесь, что вы указали .pkg для завершения процесса без остановки на файле, который не является распознанным пакетом.

Проверка пакетов на наличие просроченных сертификатов в Mac OS X