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.