Atualizar aplicações para conexão com instâncias de banco de dados Microsoft SQL Server usando novos certificados SSL/TLS - Amazon Relational Database Service

Atualizar aplicações para conexão com instâncias de banco de dados Microsoft SQL Server usando novos certificados SSL/TLS

Em 13 de janeiro de 2023, o Amazon RDS publicou novos certificados de autoridade de certificação (CA) para se conectar às suas instâncias de banco de dados do RDS via Secure Socket Layer ou Transport Layer Security (SSL/TLS). A seguir, você pode encontrar informações sobre como atualizar seus aplicativos para usar os novos certificados.

Este tópico pode ajudá-lo a determinar se algum aplicativo cliente usa SSL/TLS para conectar-se às suas instâncias de banco de dados. Em caso positivo, examine mais a fundo se esse aplicativo exige verificação de certificado para se conectar.

nota

Algumas aplicações são configuradas para se conectar a instâncias de banco de dados do SQL Server apenas quando podem verificar com êxito o certificado no servidor.

Para esses aplicativos, você deve atualizar os repositórios confiáveis de aplicativos cliente para incluir os novos certificados de CA.

Depois de atualizar seus certificados de CA nos armazenamentos confiáveis do aplicativo cliente, você pode fazer o rodízio dos certificados nas suas instâncias de banco de dados. É altamente recomendável testar esses procedimentos em um ambiente de desenvolvimento ou teste antes de implementá-los em seus ambientes de produção.

Para obter mais informações sobre a mudança de certificados, consulte Alternar o certificado SSL/TLS. Para obter mais informações sobre como fazer download de certificados, consulte Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados. Para obter informações sobre o uso de SSL/TLS com instâncias de bancos de dados Microsoft SQL Server, consulte Uso do SSL com uma instância de banco de dados do Microsoft SQL Server.

Determinar se alguma aplicação está se conectando à sua instância de banco de dados Microsoft SQL Server usando SSL

Verifique a configuração da instância de banco de dados para obter o valor do parâmetro rds.force_ssl. Por padrão, o parâmetro rds.force_ssl é definido como 0 (desativado). Se o parâmetro rds.force_ssl estiver definido como 1 (ativado), os clientes serão obrigados a usar SSL/TLS para conexões. Para ter mais informações sobre parameter groups, consulte Trabalhar com grupos de parâmetros.

Executar a seguinte consulta para obter a opção de criptografia atual para todas as conexões abertas para uma instância de banco de dados. A coluna ENCRYPT_OPTION retornará TRUE se a conexão estiver criptografada.

select SESSION_ID, ENCRYPT_OPTION, NET_TRANSPORT, AUTH_SCHEME from SYS.DM_EXEC_CONNECTIONS

Essa consulta mostra apenas as conexões atuais. Ela não mostra se os aplicativos que se conectaram e desconectaram no passado usaram SSL.

Determinar se um cliente requer verificação de certificado para se conectar

Você pode verificar se diferentes tipos de clientes exigem verificação do certificado para se conectar.

nota

Se você usar conectores diferentes dos listados, consulte a documentação do conector específico para obter informações sobre como ele impõe conexões criptografadas. Para obter mais informações, consulte Módulos de conexão para bancos de dados Microsoft SQL, na documentação do Microsoft SQL Server.

SQL Server Management Studio

Verifique se a criptografia é aplicada para conexões do SQL Server Management Studio:

  1. Inicie o SQL Server Management Studio.

  2. Em Connect to server (Conectar-se ao servidor), digite as informações de servidor, o nome de usuário e a senha de login.

  3. Escolha Options.

  4. Verifique se Encrypt connection (Criptografar conexão) está selecionada na página de conexão.

Para obter mais informações sobre o SQL Server Management Studio, consulte Usar o SQL Server Management Studio.

Sqlcmd

Os exemplos a seguir com o cliente sqlcmd mostram como verificar uma conexão SQL Server de um script para determinar se conexões bem-sucedidas requerem um certificado válido. Para obter mais informações, consulte Conectar-se com sqlcmd na documentação do Microsoft SQL Server.

Ao usar sqlcmd, uma conexão SSL exigirá verificação com base no certificado do servidor se você usar o argumento de comando -N para criptografar conexões, como no exemplo a seguir.

$ sqlcmd -N -S dbinstance.rds.amazon.com -d ExampleDB
nota

Se sqlcmd for chamado com a opção -C, ele confiará no certificado do servidor, mesmo que ele não corresponda ao armazenamento confiável no lado do cliente.

ADO.NET

No exemplo a seguir, o aplicativo se conecta usando SSL, e o certificado de servidor deve ser verificado.

using SQLC = Microsoft.Data.SqlClient; ... static public void Main() { using (var connection = new SQLC.SqlConnection( "Server=tcp:dbinstance.rds.amazon.com;" + "Database=ExampleDB;User ID=LOGIN_NAME;" + "Password=YOUR_PASSWORD;" + "Encrypt=True;TrustServerCertificate=False;" )) { connection.Open(); ... }

Java

No exemplo a seguir, o aplicativo se conecta usando SSL, e o certificado de servidor deve ser verificado.

String connectionUrl = "jdbc:sqlserver://dbinstance.rds.amazon.com;" + "databaseName=ExampleDB;integratedSecurity=true;" + "encrypt=true;trustServerCertificate=false";

Para habilitar a criptografia SSL para clientes que se conectam usando o JDBC, talvez seja necessário adicionar o certificado do Amazon RDS para a loja de certificados de Java CA. Para obter instruções, consulte o tópico sobre como Configurar o cliente para criptografia, na documentação do Microsoft SQL Server. Você também pode fornecer o nome de arquivo do certificado de CA confiável diretamente, anexando trustStore=path-to-certificate-trust-store-file a string de conexão.

nota

Se você usar TrustServerCertificate=true (ou equivalente) na string de conexão, o processo de conexão ignorará a validação da cadeia de confiança. Nesse caso, o aplicativo se conecta mesmo que o certificado não possa ser verificado. O uso de TrustServerCertificate=false impõe a validação de certificado e é uma prática recomendada.

Atualizar o armazenamento confiável de aplicações

Você pode atualizar o armazenamento confiável para aplicativos que usam o Microsoft SQL Server. Para obter instruções, consulte Criptografia de conexões específicas. Além disso, consulte o tópico sobre como Configurar o cliente para criptografia, na documentação do Microsoft SQL Server.

Se você estiver usando um sistema operacional que não seja o Microsoft Windows, consulte a documentação da distribuição do software para implementação de SSL/TLS para obter informações sobre como adicionar novo certificado de CA raiz. Por exemplo, o OpenSSL e o GnuTLS são opções populares. Use o método de implementação para adicionar confiança ao certificado de CA raiz do RDS. A Microsoft fornece instruções para configurar certificados em alguns sistemas.

Para obter informações sobre como baixar o certificado raiz, consulte Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados.

Para obter exemplos de scripts que importam certificados, consulte Script de exemplo para importar certificados para o seu armazenamento confiável.

nota

Ao atualizar o armazenamento confiável, é possível reter certificados mais antigos, além de adicionar os novos certificados.