Mac OS X で期限切れの証明書のパッケージを確認する
目次:
多くの Mac ユーザーは、コンボ アップデートやその他のソフトウェアのパッケージ ファイルをダウンロードして複数のコンピュータにインストールするため、Mac App Store でのアップデートを避けています。これは特に Mac システム管理者によく見られます。単一のパッケージ アップデートまたはインストーラを一度ダウンロードして、ネットワーク経由で配布するか、USB ドライブを介して手動でインストールする方が理にかなっています。このアプローチには何の問題もありません。実際、複数の Mac を管理する場合ははるかに効率的ですが、パッケージ インストーラーまたは更新ファイルの証明書の有効期限が切れている場合、問題が発生する可能性があります。これにより、パッケージを完全にインストールできなくなります。 「(アプリケーション インストーラー) は期限切れの証明書で署名されました」というエラー メッセージが表示されたときに明らかになる状況です。
Mac OS X で pkgutil を使用してパッケージの署名ステータスを確認する方法
優れた pkgutil コマンド ライン ユーティリティは、パッケージの署名と証明書の状態を簡単に判断できます。使い方は簡単ですので、/Applications/Utilities/からTerminalアプリを起動してお試しください。
パッケージの署名ステータスをチェックするために使用する基本的な構文は次のようになります:
pkgutil --check-signature /Path/to/Example.pkg
Return キーを押すと、署名が有効かどうか、署名の有効期限が切れているかどうか、または署名がまったくないかどうかがわかります。
たとえば、システム管理者が複数の Mac を更新する一般的なシナリオである Mac OS X Combo Update ソフトウェア インストーラー パッケージがあるとします。そのパッケージ署名のステータスを次のように確認できます:
"pkgutil --check-signature ~/Downloads/OSXUpdateCombo10.10.2.pkg パッケージ OSXUpdateCombo10.10.2.pkg: ステータス: 期限切れの証明書によって署名されています "
この場合、更新パッケージの署名の有効期限が切れているため、使用しようとするとエラーがスローされます。
ただし、すべてのパッケージ インストーラーが署名を持っているわけではなく、Apple のソフトウェア アップデート ファイルには署名がありますが、サード パーティのパッケージには署名がないことがよくあります。たとえば、このサンプル パッケージ インストーラー ファイルには署名がないため、適切に処理する必要があります (つまり、ソースが信頼できない場合は、その使用を再検討してください)。
"pkgutil --check-signature ~/Downloads/MysterySketchyInstaller-21.pkg パッケージ MysterySketchyInstaller-21.pkg: ステータス: 署名なし "
パッケージファイルが疑わしい場合は、コード署名を検証し、pkgutil を使用してインストールせずにパッケージを抽出して、さらに検査するか、GUI を使用したい場合は Pacifist のようなアプリを使用できますは、まだ高度な側面ではありますが、同様のパッケージ管理ツールをより使いやすいインターフェイスで提供しています。
すべての優れたコマンド ライン ツールと同様に、pkgutil ワイルドカードを入力して複数のパッケージを同時に簡単にチェックすることもできます。この例では、~/ に含まれるすべての .pkg ファイルの署名をチェックします。ダウンロード:
pkgutil --check-signature ~/Downloads/.pkg パッケージ irssi-0.8.17-0.pkg: ステータス: 署名なし "
"Package wget-4.8.22-0.pkg: Status: no signature"
"Package ComboUpdateOSXElCapitan.pkg: ステータス: 有効期限が切れた証明書によって署名されています"
"Package InstallOSXSequoiaBeta.pkg: Status: valid"
"パッケージ HRFDeveloperTools.pkg: ステータス: 有効"
ワイルドカードを使用すると、多くの異なるパッケージ ファイルの証明書ステータスをすばやく確認できます。ただし、認識されていないパッケージでファイルを停止することなくプロセスを完了するには、.pkg を指定してください。