Verificar pacotes para certificados expirados no Mac OS X
Índice:
Muitos usuários de Mac baixam arquivos de pacote de atualizações combinadas ou outro software para instalá-los em vários computadores, evitando assim a atualização com a Mac App Store. Isso é particularmente comum com administradores de sistemas Mac, onde faz mais sentido baixar uma única atualização de pacote ou instalador uma vez e distribuí-lo em uma rede ou talvez instalar manualmente por meio de uma unidade USB.Não há absolutamente nada de errado com essa abordagem e, de fato, é muito mais eficiente para o gerenciamento de vários Macs, mas um problema potencial ocorre quando um instalador de pacote ou arquivo de atualização tem um certificado expirado, o que impedirá que o pacote seja totalmente instalado, um situação que se torna óbvia quando você recebe uma mensagem de erro “(o instalador do aplicativo) foi assinado com um certificado que expirou”.
Para evitar essa situação, você mesmo pode verificar as assinaturas dos pacotes para ver se são válidas, se expiraram ou mesmo se não têm assinatura alguma.
Como verificar o status da assinatura do pacote no Mac OS X com o pkgutil
O excelente utilitário de linha de comando pkgutil pode determinar facilmente o status de qualquer assinatura e certificado de pacote. É fácil de usar, então inicie o aplicativo Terminal em /Aplicativos/Utilitários/ e experimente você mesmo.
A sintaxe básica a ser usada para verificar o status da assinatura de um pacote é a seguinte:
pkgutil --check-signature /Path/to/Example.pkg
Pressione Enter e você descobrirá se a assinatura é válida, se a assinatura expirou ou se não há assinatura alguma.
Por exemplo, digamos que temos um pacote instalador de software Mac OS X Combo Update, um cenário comum para administradores de sistema atualizando vários Macs, você pode verificar o status da assinatura desse pacote da seguinte forma:
"pkgutil --check-signature ~/Downloads/OSXUpdateCombo10.10.2.pkg Package OSXUpdateCombo10.10.2.pkg: Status: assinado por um certificado que já expirou "
Neste caso, a assinatura do pacote de atualização expirou, o que significa que será gerado um erro se houver tentativa de uso.
No entanto, nem todos os instaladores de pacotes têm assinaturas e, embora qualquer arquivo de atualização de software da Apple tenha, os pacotes de terceiros geralmente não têm.Por exemplo, este exemplo de arquivo de instalador de pacote não tem assinatura e deve ser tratado adequadamente (ou seja, se você não confia na fonte, talvez reconsidere usá-la).
"pkgutil --check-signature ~/Downloads/MysterySketchyInstaller-21.pkg Pacote MysterySketchyInstaller-21.pkg: Status: sem assinatura "
Se um arquivo de pacote for duvidoso, você pode verificar a assinatura do código e extrair o pacote sem instalá-lo com o pkgutil para fazer uma inspeção mais aprofundada ou, se preferir usar a GUI, um aplicativo como o Pacifist oferece ferramentas de gerenciamento de pacotes semelhantes em uma interface mais amigável, mesmo que ainda esteja no lado avançado das coisas.
Como todas as boas ferramentas de linha de comando, você pode até alimentar curingas pkgutil para verificar facilmente vários pacotes ao mesmo tempo. Neste exemplo, verificaremos a assinatura de cada arquivo .pkg contido em ~/ Transferências:
pkgutil --check-signature ~/Downloads/.pkg Pacote irssi-0.8.17-0.pkg: Status: sem assinatura "
"Pacote wget-4.8.22-0.pkg: Status: sem assinatura"
"Package ComboUpdateOSXElCapitan.pkg: Status: assinado por um certificado que já expirou"
"Package InstallOSXSequoiaBeta.pkg: Status: valid"
"Package HRFDeveloperTools.pkg: Status: valid"
Os curingas farão um trabalho rápido de verificação do status do certificado de muitos arquivos de pacote diferentes, apenas certifique-se de especificar .pkg para que o processo seja concluído sem parar em um arquivo que não seja um pacote reconhecido.