Configurar um certificado de criptografia e criptografar segredos em clusters Linux

Este artigo mostra como configurar um certificado de criptografia e criptografar segredos em clusters Linux. Para clusters Windows, consulte Configurar um certificado de criptografia e criptografar segredos em clusters Windows.

Obter um certificado de codificação de dados

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

  • O certificado deve conter uma chave privada.

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

    Por exemplo, os comandos a seguir podem ser usados para gerar o certificado necessário usando OpenSSL:

    user@linux:~$ openssl req -newkey rsa:2048 -nodes -keyout TestCert.prv -x509 -days 365 -out TestCert.pem
    user@linux:~$ cat TestCert.prv >> TestCert.pem
    

Instalar o certificado em seu cluster

O certificado precisa ser instalado em cada nó no cluster em /var/lib/sfcerts. A conta de usuário na qual o serviço está em execução (sfuser por padrão) deve ter acesso de leitura ao certificado instalado (ou seja, /var/lib/sfcerts/TestCert.pem no exemplo atual).

Criptografar segredos

O snippet a seguir pode ser usado para criptografar um segredo. Esse snippet só criptografa o valor; ele não assina o texto da codificação. Você precisa usar o mesmo certificado de codificação instalado no seu cluster para produzir texto codificado para valores do segredo.

user@linux:$ echo "Hello World!" > plaintext.txt
user@linux:$ iconv -f ASCII -t UTF-16LE plaintext.txt | tr -d '\n' > plaintext_UTF-16.txt
user@linux:$ openssl smime -encrypt -in plaintext_UTF-16.txt -binary -outform der TestCert.pem | base64 > encrypted.txt

A cadeia de caracteres codificada de base 64 resultante que é gerada para encrypted.txt contém tanto o texto cifrado secreto como informações sobre o certificado usado para criptografá-lo. Você pode verificar sua validade descriptografando-a com OpenSSL.

user@linux:$ cat encrypted.txt | base64 -d | openssl smime -decrypt -inform der -inkey TestCert.prv

Próximas etapas

Saiba como Especificar segredos criptografados em um aplicativo.