Перевірте пакети на наявність прострочених сертифікатів у 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
Натисніть «Повернутись», і ви дізнаєтесь, чи підпис дійсний, термін дії підпису минув або підпису немає взагалі.
Наприклад, скажімо, у нас є пакет інсталятора програмного забезпечення 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: Статус: підписаний сертифікатом, термін дії якого закінчився"
"Package InstallOSXSequoiaBeta.pkg: Статус: дійсний"
"Пакет HRFDeveloperTools.pkg: Статус: дійсний"
Знаки підстановки допоможуть швидко перевірити статус сертифіката багатьох різних файлів пакетів, просто переконайтеся, що ви вказали .pkg, щоб процес завершився без зупинки на файлі, який не є розпізнаним пакетом.