Partilhar via


Como criar um certificado de assinatura de pacote de aplicativo

Importante

MakeCert.exe está obsoleto. Para obter orientações atuais sobre como criar um certificado, consulte Criar um certificado para assinatura de pacote.

 

Saiba como usar MakeCert.exe e Pvk2Pfx.exe para criar um certificado de assinatura de código de teste, para que você possa assinar seus pacotes de aplicativos do Windows.

Você deve assinar digitalmente seus aplicativos do Windows empacotados antes de implantá-los. Se você não usa o Microsoft Visual Studio 2012 para criar e assinar seus pacotes de aplicativo, precisará criar e gerenciar seus próprios certificados de assinatura de código. Você pode criar certificados usando MakeCert.exe e Pvk2Pfx.exe do Kit de Driver do Windows (WDK). Em seguida, você pode usar os certificados para assinar os pacotes do aplicativo, para que eles possam ser implantados localmente para teste.

O que precisa de saber

Tecnologias

Pré-requisitos

Instruções

Etapa 1: Determinar o nome do publicador do pacote

Para tornar o certificado de assinatura que crias utilizável com o pacote da aplicação que pretendes assinar, o nome do sujeito do certificado de assinatura deve coincidir com o atributo Publisher do elemento Identity no AppxManifest.xml dessa aplicação. Por exemplo, suponha que o AppxManifest.xml contém:

  <Identity Name="Contoso.AssetTracker" 
    Version="1.0.0.0" 
    Publisher="CN=Contoso Software, O=Contoso Corporation, C=US"/>

Para o parâmetro publisherName que você especifica com o utilitário MakeCert na próxima etapa, use "CN=Contoso Software, O=Contoso Corporation, C=US".

Observação

Essa cadeia de caracteres de parâmetro é especificada entre aspas e é sensível a maiúsculas e minúsculas e espaços em branco.

 

A cadeia de caracteres do atributo do Publisher definida para o elemento Identity no AppxManifest.xml deve ser idêntica à cadeia de caracteres que você especifica com o parâmetro MakeCert /n para o nome do sujeito do certificado. Copie e cole a cadeia de caracteres sempre que possível.

Etapa 2: Criar uma chave privada usando o MakeCert.exe

Use o utilitário MakeCert para criar um certificado de teste autoassinado e uma chave privada:

MakeCert /n publisherName /r /h 0 /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" /e <expirationDate> /sv MyKey.pvk MyKey.cer

Este comando solicita que você forneça uma senha para o arquivo .pvk. Recomendamos que escolha um de palavra-passe forte e mantenha a sua chave privada num local seguro.

Recomendamos que você use os parâmetros sugeridos no exemplo anterior pelos seguintes motivos:

/r

Cria um certificado raiz autoassinado. Isso simplifica o gerenciamento do seu certificado de teste.

/h 0

Marca a restrição básica para o certificado como uma entidade final. Isso impede que o certificado seja usado como uma autoridade de certificação (CA) que pode emitir outros certificados.

/eku

Define os valores de Uso Avançado de Chave (EKU) para o certificado.

Observação

Não coloque um espaço entre os dois valores delimitados por vírgula.

 

  • 1.3.6.1.5.5.7.3.3 indica que o certificado é válido para assinatura de código. Sempre especifique esse valor para limitar o uso pretendido para o certificado.
  • 1.3.6.1.4.1.311.10.3.13 indica que o certificado respeita a assinatura vitalícia. Normalmente, se uma assinatura tiver carimbo de data/hora, desde que o certificado fosse válido no momento em que foi carimbado, a assinatura permanecerá válida mesmo que o certificado expire. Este EKU obriga a assinatura a expirar, independentemente de estar datada.

/e

Define a data de expiração do certificado. Forneça um valor para o parâmetro expirationDate no formato mm/dd/aaaa. Recomendamos que escolha uma data de validade tão longa quanto necessária para os seus fins de teste, normalmente inferior a um ano. Essa data de expiração em combinação com o EKU de assinatura vitalícia pode ajudar a limitar a janela na qual o certificado pode ser comprometido e usado indevidamente.

Para obter mais informações sobre outras opções, consulte MakeCert.

Etapa 3: Criar um arquivo de troca de informações pessoais (.pfx) usando o Pvk2Pfx.exe

Use o utilitárioPvk2Pfx para converter os arquivos .pvk e .cer criados Make Cert em um arquivo .pfx que você pode usar com SignTool para assinar um pacote de aplicativo:

Pvk2Pfx /pvk MyKey.pvk /pi pvkPassword /spc MyKey.cer /pfx MyKey.pfx [/po pfxPassword]

Os arquivos MyKey.pvk e MyKey.cer são os mesmos arquivos que MakeCert.exe foram criados na etapa anterior. Usando o parâmetro opcional /po, você pode especificar uma senha diferente para o .pfx resultante; caso contrário, o .pfx tem a mesma senha que MyKey.pvk.

Para obter mais informações sobre outras opções, consulte Pvk2Pfx.

Comentários

Depois de criar o arquivo .pfx, você pode usar o arquivo com SignTool para assinar um pacote de aplicativo. Para obter mais informações, consulte Como assinar um pacote de aplicativo usando o SignTool. Mas o certificado ainda não é considerado confiável para o computador local para a implantação de pacotes de aplicativos até que você o instale no armazenamento de certificados confiáveis do computador local. Você pode usar o Certutil.exe, que vem com o Windows.

Para instalar certificados com WindowsCertutil.exe

  1. Execute Cmd.exe como administrador.

  2. Execute este comando:

    Certutil -addStore TrustedPeople MyKey.cer
    

Recomendamos que você remova os certificados se eles não estiverem mais em uso. No mesmo prompt de comando do administrador, execute este comando:

Certutil -delStore TrustedPeople certID

O certID é o número de série do certificado. Execute este comando para determinar o número de série do certificado:

Certutil -store TrustedPeople

Considerações de segurança

Ao adicionar um certificado aos armazenamentos de certificados da máquina local , afeta a confiança nos certificados de todos os utilizadores do computador. Recomendamos que você instale todos os certificados de assinatura de código desejados para testar pacotes de aplicativos no repositório de certificados de Pessoas Confiáveis. Remova prontamente esses certificados quando não forem mais necessários, para evitar que sejam usados para comprometer a confiança do sistema.

Amostras

Criar exemplo de pacote de aplicativo

Conceitos

Code-Signing Melhores Práticas

Como assinar um pacote de aplicativo usando o SignTool

Assinar um pacote de aplicativo