Configurar um certificado de criptografia e criptografar segredos em clusters Linux
Este artigo mostra como configurar um certificado de criptografia e usá-lo para criptografar segredos em clusters Linux. Para clusters do Windows, consulte Configurar um certificado de criptografia e criptografar segredos em clusters do Windows.
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 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, os seguintes comandos 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 no cluster
O certificado deve ser instalado em cada nó do cluster em /var/lib/sfcerts
. A conta de usuário sob a qual o serviço está sendo executado (sfuser por padrão) deve ter acesso de leitura ao certificado instalado (ou seja, /var/lib/sfcerts/TestCert.pem
para o exemplo atual).
Encriptar os segredos
O trecho a seguir pode ser usado para criptografar um segredo. Esse trecho apenas criptografa 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.
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 resultante da cadeia de caracteres codificada em base 64 para encrypted.txt contém tanto o texto cifrado secreto quanto informações sobre o certificado que foi usado para criptografá-lo. Pode verificar a sua validade desencriptando-o com OpenSSL.
user@linux:$ cat encrypted.txt | base64 -d | openssl smime -decrypt -inform der -inkey TestCert.prv
Próximos passos
Saiba como Especificar segredos criptografados em um aplicativo.