Configurar um certificado de encriptação e encriptar segredos em clusters do Linux

Este artigo mostra como configurar um certificado de encriptação e utilizá-lo para encriptar segredos em clusters do Linux. Para clusters do Windows, veja Configurar um certificado de encriptação e encriptar segredos em clusters do Windows.

Obter um certificado de enciframentação de dados

Um certificado de enciframentação de dados é utilizado estritamente para encriptação e desencriptação de parâmetros nas variáveis de ambiente e Settings.xml de um serviço no ServiceManifest.xml de um serviço. Não é utilizado para autenticação ou assinatura de texto de cifra. O certificado tem de cumprir os seguintes requisitos:

  • O certificado tem de conter uma chave privada.

  • A utilização da chave de certificado tem de incluir a Encifração de Dados (10) e não deve incluir a Autenticação do Servidor ou a Autenticação de Cliente.

    Por exemplo, os seguintes comandos podem ser utilizados para gerar o certificado necessário com o 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 no cluster

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

Encriptar os segredos

O fragmento seguinte pode ser utilizado para encriptar um segredo. Este fragmento encripta apenas o valor; não assina o texto da cifra. Tem de utilizar o mesmo certificado de enciframentação que está instalado no cluster para produzir cifratexto para valores secretos.

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 saída de cadeia codificada base 64 resultante para encrypted.txt contém o cifratexto secreto, bem como informações sobre o certificado que foi utilizado para encriptá-lo. Pode verificar a sua validade ao desencriptar com o OpenSSL.

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

Passos seguintes

Saiba como Especificar segredos encriptados numa aplicação.