Assinar manifestos de aplicativo e implantação

Se você desejar publicar um aplicativo usando a implantação do ClickOnce, os manifestos do aplicativo e de implantação deverão ser assinados com um par de chaves pública/privada e assinados usando a tecnologia Authenticode. É possível assinar os manifestos usando um certificado do repositório de certificados do Windows ou um arquivo de chave.

As informações neste artigo se aplicarão somente se você estiver usando o .NET Framework 4.8.1 ou anterior. Se você estiver usando o .NET 5 ou posterior, siga as etapas em Implantar um aplicativo da área de trabalho do Windows .NET usando o ClickOnce.

Para obter mais informações sobre a implantação do ClickOnce, consulte Segurança e implantação do ClickOnce.

A assinatura dos manifestos do ClickOnce é opcional para aplicativos baseados em .exe. Para obter mais informações, consulte a seção “Gerar manifestos não assinados” deste documento.

Para obter informações sobre como criar arquivos de chave, consulte Como criar um par de chaves pública-privada.

Observação

O Visual Studio oferece suporte apenas a arquivos de chave de Troca de Informações Pessoais (PFX) que têm a extensão .pfx. No entanto, é possível selecionar outros tipos de certificados do repositório de certificados do Windows do usuário atual, clicando em Selecionar do Repositório na página Assinatura das propriedades do projeto.

Assinar usando um certificado

Para usar esse método, você deve ter um certificado assinado por uma AC (autoridade certificadora). Os certificados são emitidos por provedores de serviços de certificação de terceiros ou por organizações autorizadas em uma empresa.

  1. Vá para a janela de propriedades do projeto (clique com o botão direito do mouse no nó do projeto no Gerenciador de Soluções e selecione Propriedades). Na guia Assinatura, selecione a caixa de seleção Assinar os manifestos do ClickOnce.

  2. Clique no botão Selecionar do Repositório.

    A caixa de diálogo Selecionar um Certificado é exibida e mostra o conteúdo do repositório de certificados do Windows.

    Dica

    Se você clicar em Clique aqui para exibir as propriedades do certificado, a caixa de diálogo Detalhes do Certificado será exibida. Essa caixa de diálogo inclui informações detalhadas sobre o certificado e opções adicionais. Clique em Certificados para exibir mais informações de ajuda.

  3. Selecione o certificado que você deseja usar para assinar os manifestos.

    Dica

    Se não houver nenhum certificado no repositório, ainda é possível assinar usando um certificado de teste.

  4. Além disso, é possível especificar o endereço de um servidor de carimbo de data/hora na caixa de texto URL do servidor de carimbo de data/hora. Esse é um servidor que fornece um carimbo de data/hora que especifica quando o manifesto foi assinado. Geralmente, é fornecido pelo mesmo terceiro que oferece certificados assinados por uma AC.

Assinar usando um arquivo de chave existente

  1. Na página Assinatura, selecione a caixa de seleção Assinar os manifestos do ClickOnce.

  2. Clique no botão Selecionar do Arquivo.

    A caixa de diálogo Selecionar Arquivo é exibida.

  3. Na caixa de diálogo Selecionar Arquivo, procure o local do arquivo de chave (.pfx) que você deseja usar e clique no botão Abrir.

    Observação

    Essa opção é compatível apenas com os arquivos que têm a extensão .pfx. Se você tiver um arquivo de chave ou um certificado em outro formato, armazene-o no repositório de certificados do Windows e selecione o certificado que é descrito no procedimento anterior. A finalidade do certificado selecionado deve incluir a assinatura de código.

    A caixa de diálogo Inserir senha para abrir o arquivo é exibida. (Se o arquivo .pfx já estiver armazenado no repositório de certificados do Windows ou não for protegido por senha, você não precisará inserir uma senha.)

  4. Insira a senha para acessar o arquivo de chave e, em seguida, selecione Enter.

  5. Selecione Mais detalhes... para ver as propriedades do certificado. O ClickOnce exibe o valor do campo Entidade como o Fornecedor ao mostrar o certificado quando um usuário instala seu aplicativo. Este é um exemplo do que o usuário vê quando o aplicativo ClickOnce é instalado:

    Captura de tela do certificado mostrado no momento da instalação do aplicativo.

Observação

O arquivo .pfx não pode incluir informações de encadeamento de certificados. Assim, ocorrerá o seguinte erro de importação: Não é possível localizar o certificado e a chave privada para descriptografia. Para remover as informações de encadeamento de certificados, você pode usar Certmgr.msc e desabilitar a opção para Incluir todos os certificados ao exportar o arquivo *.pfx.

Assinar usando um certificado de teste

Os certificados de teste não são assinados por uma AC (Autoridade Certificadora) e só devem ser usados para fins de teste. Para obter detalhes sobre certificados de teste, consulte Como usar autoridades certificadoras ajuda os usuários.

  1. Na página Assinatura, selecione a caixa de seleção Assinar os manifestos do ClickOnce.

  2. Para criar um novo certificado para teste, clique no botão Criar Certificado de Teste.

  3. Na caixa de diálogo Criar Certificado de Teste, insira uma senha para ajudar a proteger o certificado de teste.

Observação

Certifique-se de escolher sha256RSA como o Algoritmo de Assinatura, a menos que esteja visando o .NET 2.0.

Gerar manifestos não assinados

A assinatura dos manifestos do ClickOnce é opcional para aplicativos baseados em .exe. Os procedimentos a seguir mostram como gerar manifestos não assinados do ClickOnce.

Importante

Manifestos não assinados podem simplificar o desenvolvimento e o teste do aplicativo. No entanto, os manifestos não assinados introduzem riscos de segurança significativos em um ambiente de produção. Apenas considere o uso de manifestos não assinados se o aplicativo ClickOnce for executado em computadores em uma intranet que está completamente isolada da Internet ou de outras fontes de código mal-intencionado.

Por padrão, o ClickOnce gera manifestos assinados automaticamente, a menos que um ou mais arquivos sejam excluídos especificamente do hash gerado. Em outras palavras, a publicação do aplicativo resultará em manifestos assinados se todos os arquivos forem incluídos no hash, mesmo quando a caixa de seleção Assinar os manifestos do ClickOnce estiver desmarcada.

Para gerar manifestos não assinados e incluir todos os arquivos no hash gerado

Para gerar manifestos não assinados que incluem todos os arquivos no hash, primeiro é necessário publicar o aplicativo junto com manifestos assinados. Portanto, primeiro assine os manifestos do ClickOnce seguindo um dos procedimentos anteriores e, em seguida, publique o aplicativo.

  1. Na guia Assinatura, limpe a caixa de seleção Assinar os manifestos do ClickOnce.

  2. Na guia Publicar, redefina a versão de publicação para que apenas uma versão do aplicativo esteja disponível. Desmarque a caixa de seleção Incrementar automaticamente a versão com cada publicação. Por padrão, o Visual Studio incrementa automaticamente o número de revisão da versão de publicação sempre que um aplicativo é publicado. Para obter mais informações, consulte Como definir a versão de publicação do ClickOnce.

  3. Publique o aplicativo. O Visual Studio informa que o aplicativo foi assinado com uma chave diferente do aplicativo existente no servidor e pergunta se você deseja substituí-lo. Escolha Sim.

Para gerar manifestos não assinados e excluir um ou mais arquivos do hash gerado

  1. Na página Assinatura, limpe a caixa de seleção Assinar os manifestos do ClickOnce.

  2. Na guia Publicar, escolha o botão Arquivos de Aplicativo para abrir a caixa de diálogo Arquivos de Aplicativo e defina o Hash como Excluir para os arquivos que você deseja excluir do hash gerado.

    Observação

    A exclusão de um arquivo do hash configura o ClickOnce para desabilitar a assinatura automática dos manifestos; portanto, você não precisa primeiro publicar com manifestos assinados, conforme mostrado no procedimento anterior.

  3. Publique o aplicativo.