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

Как проверить файлы пакетов на наличие сертификатов с истекшим сроком действия

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

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

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

Превосходная утилита командной строки pkgutil может легко определить статус любой подписи и сертификата пакета. Его легко использовать, поэтому запустите приложение Terminal из / Applications / Utilities / и попробуйте сами.

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

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

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

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

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

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

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

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

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

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

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

Пакет «wget-4.8.22-0.pkg»:
Статус: без подписи

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

Пакет «InstallOSXSequoiaBeta.pkg»:
Статус: действующий

Пакет «HRFDeveloperTools.pkg»:
Статус: действующий

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

Похожие записи

Добавить комментарий

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