O PostgresApp é uma aplicação de código aberto que fornece uma instância do PostgreSQL para o sistema operativo macOS, conhecida pela sua facilidade de uso e desempenho eficiente. Para proteger dados sensíveis, a configuração do Transparent Data Ancryption (TDE) torna-se essencial. Esta funcionalidade encripta automaticamente os dados ao escrevê-los no disco e desencripta-os ao lê-los, operando de forma transparente para a aplicação.

Pré-requisitos para a Configuração
Antes de iniciar, assegure que o PostgresApp está instalado com a versão mais recente. O serviço de base de dados deve estar parado e é crucial efetuar uma cópia de segurança de todos os dados, por exemplo, utilizando a ferramenta pg_dump.
Passos para Habilitar o TDE
1. Localizar os Ficheiros de Configuarção
Os ficheiros de configuração centrais do PostgreSQL dentro do PostgresApp encontram-se no diretório de dados. O caminho padrão é semelhante a ~/Library/Application Support/Postgres/var-9.6. Os ficheiros relevantes são:
postgresql.confpg_hba.conf
2. Ativar a Encriptação via SSL no postgresql.conf
Abra o ficheiro postgresql.conf e modifique ou adicione as seguintes linhas:
shared_preload_libraries = 'pgcrypto'
ssl = on
ssl_cert_file = '/caminho/para/server.crt'
ssl_key_file = '/caminho/para/server.key'
3. Reforçar a Autenticação no pg_hba.conf
Para aumetnar a segurança, altere o método de autenticação de trust para md5:
# Conexões via socket local
local all all md5
# Conexões locais IPv4
host all all 127.0.0.1/32 md5
4. Gerar Certificados SSL
Execute os seguintes comandos no terminal para criar um certificado autoassinado. Certifique-se de navegar primeiro para o diretório de dados do PostgreSQL.
openssl req -new -x509 -nodes -days 365 -out server.crt -keyout server.key
chmod 600 server.key
5. Reiniciar o Serviço
Abra a aplicação PostgresApp, pare todos os servidores de base de dados e inicie-os novamente para que as alterações entrem em vigor.
Verificação da Configuração
Após estabelecer uma conexão, execute a seguinte consulta SQL para confirmar que o SSL está ativo:
SELECT name, setting FROM pg_settings WHERE name IN ('ssl', 'ssl_cert_file', 'ssl_key_file');
Se o parâmetro ssl tiver o valor on, a configuração foi bem-sucedida.
Resolução de Problemas Comuns
Se a ligação à base de dados falhar após a configuração, verifique as permissões dos ficheiros de certificado e chave. O ficheiro server.key deve ter permissões restritas (ex.: 600). Os backups realizados com pg_dump incluirão os dados encriptados; a restauração requer que a configuração TDE esteja igualmente presente no servidor de destino.