Como criar certificados temporários para uso durante o desenvolvimento

.NET Framework (current version)
 

Ao desenvolver um serviço seguro ou um cliente usando Windows Communication Foundation (WCF), geralmente é necessário fornecer um certificado x. 509 a ser usado como uma credencial. Normalmente, o certificado é parte de uma cadeia de certificados com uma autoridade raiz encontrado no armazenamento de autoridades de certificação raiz confiáveis do computador. Ter uma cadeia de certificados permite definir o escopo de um conjunto de certificados onde normalmente autoridade raiz é de sua organização ou unidade de negócios. Para emular isso em tempo de desenvolvimento, você pode criar dois certificados para satisfazer os requisitos de segurança. A primeira é um certificado autoassinado que é colocado no armazenamento de autoridades de certificação raiz confiáveis, e o segundo certificado é criado a partir do primeiro e é colocado no armazenamento pessoal do local do computador Local ou o repositório pessoal do local do usuário atual. Este tópico descreve as etapas para criar esses dois certificados usando o ferramenta de criação de certificado (MakeCert.exe), que é fornecido pelo .NET Framework SDK.

System_CAPS_importantImportante

A ferramenta de criação de certificação gera certificados são fornecidos somente para testes. Ao implantar um serviço ou cliente, certifique-se de usar um certificado apropriado fornecido por uma autoridade de certificação. Isso pode ser de um Windows Server 2003 certificado de servidor na sua organização ou de terceiros.

Por padrão, o Makecert.exe (Ferramenta de Criação de Certificado) cria certificados cuja autoridade raiz é chamada "agência raiz." Como a agência"raiz" não está no repositório de autoridades de certificação raiz confiáveis, isso torna esses certificados inseguro. Criando um certificado autoassinado que é colocado em autoridades de certificação raiz confiáveis armazenamento permite que você crie um ambiente de desenvolvimento que mais de perto simula o ambiente de implantação.

Para obter mais informações sobre criar e usar certificados, consulte Trabalhando com certificados.Para obter mais informações sobre usando um certificado como uma credencial, consulte Protegendo serviços e clientes. Para obter um tutorial sobre como usar a tecnologia Microsoft Authenticode, consulte visões gerais de Authenticode e tutoriais.

Para criar um certificado de autoridade raiz autoassinado e exportar a chave privada

  1. Use a ferramenta MakeCert.exe com as seguintes opções:

    1. -nsubjectName. Especifica o nome da entidade. A convenção é prefixar o nome de assunto com "CN =" de "Common Name".

    2. -r. Especifica que o certificado autoassinado.

    3. -svprivateKeyFile. Especifica o arquivo que contém o contêiner de chave privada.

    Por exemplo, o comando a seguir cria um certificado autoassinado com um nome de entidade "CN = TempCA."

    makecert -n "CN=TempCA" -r -sv TempCA.pvk TempCA.cer
    

    Você será solicitado a fornecer uma senha para proteger a chave privada. Essa senha é necessária quando a criação de um certificado assinado por esse certificado raiz.

Para criar um novo certificado assinado por um certificado de autoridade raiz

  1. Use a ferramenta MakeCert.exe com as seguintes opções:

    1. -sksubjectKey. O local do contêiner de chave da entidade que contém a chave privada. Se um contêiner de chave não existir, será criado. Se nenhuma das opções -sk ou sv - for usada, um contêiner de chave chamado JoeSoft é criado por padrão.

    2. -nsubjectName. Especifica o nome da entidade. A convenção é prefixar o nome de assunto com "CN =" de "Common Name".

    3. -ivissuerKeyFile. Especifica o arquivo de chave privada do emissor.

    4. -icissuerCertFile. Especifica o local do certificado do emissor.

    Por exemplo, o comando a seguir cria um certificado assinado pelo TempCA certificado de autoridade raiz com um nome de entidade "CN=SignedByCA" usando a chave privada do emissor.

    makecert -sk SignedByCA -iv TempCA.pvk -n "CN=SignedByCA" -ic TempCA.cer SignedByCA.cer -sr currentuser -ss My
    

Depois de criar um certificado autoassinado, você pode instalá-lo no repositório de autoridades de certificação raiz confiáveis. Todos os certificados são assinados com o certificado agora são confiáveis pelo computador. Por esse motivo, exclua o certificado do repositório, assim você não precisa mais dela. Quando você excluir este certificado de autoridade raiz, todos os outros certificados assinados com ela se tornar não autorizados. Certificados de autoridade raiz são simplesmente um mecanismo pelo qual um grupo de certificados pode ser definido conforme necessário. Por exemplo, em aplicativos ponto a ponto, há geralmente sem a necessidade de uma autoridade raiz porque você simplesmente confia na identidade de um indivíduo por seu certificado fornecido.

Para instalar um certificado auto-assinado em autoridades de certificação raiz confiáveis

  1. Abra o snap-in de certificados.Para saber mais, vejaComo exibir certificados com o snap-in do MMC.

  2. Abra a pasta para armazenar o certificado, ou o computador Local ou usuário atual.

  3. Abra o autoridades de certificação raiz confiáveis pasta.

  4. Clique com botão direito do certificados pasta e clique em todas as tarefas, em seguida, clique em importação.

  5. Siga o assistente na tela instruções para importar o TempCa.cer para o armazenamento.

Depois que você configurar os certificados temporários, você pode usá-los para desenvolver soluções WCF que especificar certificados como um tipo de credencial de cliente. Por exemplo, a seguinte configuração XML especifica um certificado e segurança de mensagem como o tipo de credencial de cliente.

Para especificar um certificado como o tipo de credencial de cliente

  • No arquivo de configuração para um serviço, use o seguinte XML para definir o modo de segurança de mensagem e o tipo de credencial de cliente para o certificado.

    <bindings>     
      <wsHttpBinding>
        <binding name="CertificateForClient">
          <security>
            <message clientCredentialType="Certificate" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    
    

No arquivo de configuração para um cliente, use o seguinte XML para especificar que o certificado é encontrado no armazenamento do usuário e pode ser encontrado pesquisando o campo SubjectName para o valor "CohoWinery."


<behaviors>
  <endpointBehaviors>
    <behavior name="CertForClient">
      <clientCredentials>
        <clientCertificate findValue="CohoWinery" x509FindType="FindBySubjectName" />
       </clientCredentials>
     </behavior>
   </endpointBehaviors>
</behaviors>

Para obter mais informações sobre como usar certificados no WCF, consulte Trabalhando com certificados.

Segurança do .NET Framework

Certifique-se de excluir qualquer certificados de autoridade raiz temporário do autoridades de certificação raiz confiáveis e pessoal pastas clicando duas vezes no certificado e clicando em Excluir.

Mostrar: