Configurar um certificado de criptografia e criptografar segredos em clusters do Windows

Este artigo mostra como configurar um certificado de criptografia e usá-lo para criptografar segredos em clusters do Windows. Para clusters Linux, consulte Configurar um certificado de criptografia e criptografar segredos em clusters Linux.

O Azure Key Vault é usado aqui como um local de armazenamento seguro para certificados e como uma maneira de obter certificados instalados em clusters do Service Fabric no Azure. Se você não estiver implantando no Azure, não precisará usar o Cofre da Chave para gerenciar segredos em aplicativos do Service Fabric. No entanto, o uso de segredos em um aplicativo é independente da plataforma de nuvem para permitir que os aplicativos sejam implantados em um cluster hospedado em qualquer lugar.

Obter um certificado de encriptação de dados

Um certificado de criptografia de dados é usado estritamente para criptografia e descriptografia de parâmetros nas variáveis de Settings.xml e ambiente de um serviço no ServiceManifest.xml de um serviço. Ele não é usado para autenticação ou assinatura de texto cifrado. O certificado deve satisfazer os seguintes requisitos:

  • O certificado deve conter uma chave privada.

  • O certificado deve ser criado para troca de chaves, exportável para um arquivo de troca de informações pessoais (.pfx).

  • O uso da chave de certificado deve incluir Criptografia de Dados (10) e não deve incluir Autenticação de Servidor ou Autenticação de Cliente.

    Por exemplo, ao criar um certificado autoassinado usando o PowerShell, o KeyUsage sinalizador deve ser definido como DataEncipherment:

    New-SelfSignedCertificate -Type DocumentEncryptionCert -KeyUsage DataEncipherment -Subject mydataenciphermentcert -Provider 'Microsoft Enhanced Cryptographic Provider v1.0'
    

Instalar o certificado no cluster

Esse certificado deve ser instalado em cada nó do cluster. Veja como criar um cluster usando o Azure Resource Manager para obter instruções de configuração.

Criptografar segredos do aplicativo

O comando PowerShell a seguir é usado para criptografar um segredo. Este comando apenas encripta o valor; não assina o texto cifrado. Você deve usar o mesmo certificado de criptografia instalado no cluster para produzir texto cifrado para valores secretos:

Invoke-ServiceFabricEncryptText -CertStore -CertThumbprint "<thumbprint>" -Text "mysecret" -StoreLocation CurrentUser -StoreName My

A cadeia de caracteres codificada em base 64 resultante contém o texto cifrado secreto, bem como informações sobre o certificado que foi usado para criptografá-lo.

Próximos passos

Saiba como Especificar segredos criptografados em um aplicativo.