Guia do Desenvolvedor de Empacotamento de Aplicativos

Gerenciamento de certificado

Antes de criar um pacote assinado, você deve ter uma chave de armazenamento de pacote. Esta chave de armazenamento de pacote contém certificados na forma de objetos. Existem dois tipos de objetos em uma chave de armazenamento de pacote:

Certificados de confiança

Um certificado de confiança que contém um certificado único de chave pública que pertence a outra entidade. O certificado de confiança tem essa denominação porque o proprietário da chave de armazenamento confia realmente que a chave pública do certificado pertence à identidade indicada pelo “sujeito” (proprietário) do certificado. O emissor do certificado se responsabiliza por esta confiança assinando o certificado.

Os certificados de confiança são usados na verificação de assinaturas e ao iniciar uma conexão a um servidor seguro (SSL).

Chave de usuário

Uma chave de usuário conserva informações criptográficas importantes que diferenciam maiúsculas e minúsculas. Esta informação é armazenada em um formato protegido para evitar acesso não autorizado. Uma chave de usuário está formada pela chave privada do usuário e pelo certificado de chave pública que corresponde à chave privada.

As chaves de usuário são usadas ao criar um pacote assinado.

Por padrão, a chave de armazenamento de pacote é armazenada no diretório /var/sadm/security. Os usuários individuais também podem ter suas próprias chaves de armazenamento armazenadas por padrão no diretório $HOME/.pkg/security.

No disco, uma chave de armazenamento de pacote pode se apresentar em dois formatos: formato de vários arquivos e formato de arquivo único. O formato de vários arquivos armazena seus objetos em vários arquivos. Cada tipo de objeto é armazenado em um arquivo diferente. Todos os arquivos devem ser criptografados usando a mesma frase-senha. Uma chave de armazenamento de arquivo único armazena todos os seus objetos em um único arquivo no sistema de arquivos.

O principal utilitário usado para gerenciar os certificados e a chave de armazenamento de pacote é o comando pkgadm. As subseções seguintes descrevem as tarefas mais comuns usadas para gerenciamento de chaves de armazenamento de pacote.

Adicionando certificados de confiança à chave de armazenamento de pacote

Um certificado de confiança pode ser adicionado à chave de armazenamento de pacote usando o comando pkgadm. O certificado pode estar no formato PEM ou DER. Por exemplo:


$ pkgadm addcert -t /tmp/mytrustedcert.pem

Neste exemplo, o certificado em formato PEM denominado mytrustedcert.pem é adicionado à chave de armazenamento de pacote.

Adicionando um certificado de usuário e chave privada à chave de armazenamento de pacote

O comando pkgadm não gera certificados de usuário nem chaves privadas. Os certificados de usuário e chaves privadas são obtidos normalmente de uma Autoridade de certificado, tal como Verisign. Ou, são gerados localmente tal como um certificado auto-assinado. Uma vez a chave e o certificado tenham sido obtidos, eles podem ser importados para a chave de armazenamento de pacote usando o comando pkgadm. Por exemplo:


pkgadm addcert -n myname -e /tmp/myprivkey.pem /tmp/mypubcert.pem

Neste exemplo, são usadas as seguintes opções:

-n myname

Identifica a entidade (myname) da chave de armazenamento de pacote na qual você deseja operar. A entidade myname se torna o alias no qual os objetos são armazenados.

-e /tmp/myprivkey.pem

Especifica o arquivo que contém a chave privada. Neste caso, o arquivo é myprivkey.pem, que está localizado no diretório /tmp.

/tmp/mypubcert.pem

Especifica o arquivo de certificado no formato PEM denominado mypubcert.pem .

Verificando o conteúdo na chave de armazenamento de pacote

O comando pkgadm também é usado para visualizar o conteúdo da chave de armazenamento de pacote. Por exemplo:


$ pkgadm listcert

Este comando exibe os certificados de confiança e as chaves privadas da chave de armazenamento de pacote.

Excluindo certificados de usuário e chaves privadas da chave de armazenamento de pacote

O comando pkgadm pode ser usado para excluir certificados de confiança e chaves privadas da chave de armazenamento de pacote.

Ao excluir os certificados de usuários, o alias do par certificado/chave deve ser especificado. Por exemplo:


$ pkgadm removecert -n myname

O alias do certificado é o nome comum do certificado, que pode ser identificado usando o comando pkgadm listcert. Por exemplo, este comando exclui um certificado de confiança intitulado Trusted CA Cert 1:


$ pkgadm removecert -n "Trusted CA Cert 1"

Observação –

Se você possuir tanto um certificado de confiança quanto um certificado de usuário armazenado usando o mesmo alias, ambos são excluídos quando a opção -n for especificada.