Conectividade SSL/TLS no Banco de Dados do Azure para MySQL

APLICA-SE A: Banco de Dados do Azure para MySQL – Servidor único

Importante

O Banco de Dados do Azure para servidor único MySQL está no caminho de desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para o servidor flexível MySQL. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para o servidor flexível MySQL, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único MySQL?

O Banco de Dados do Azure para MySQL dá suporte à conexão de seu servidor de banco de dados com aplicativos cliente usando o protocolo SSL. Impor conexões SSL entre seu servidor de banco de dados e os aplicativos cliente ajuda a proteger contra ataques de "intermediários" criptografando o fluxo de dados entre o servidor e seu aplicativo.

Observação

Atualizar o valor do parâmetro do servidor require_secure_transport não afeta o comportamento do serviço MySQL. Use os recursos de imposição SSL e TLS descritos neste artigo para proteger as conexões com o banco de dados.

Observação

Com base nos comentários dos clientes, estendemos a substituição do certificado raiz para nossa CA Raiz Baltimore existente até 15 de fevereiro de 2021 (15/02/2021).

Importante

O certificado raiz SSL está definido para expirar a partir de 15 de fevereiro de 2021 (15/02/2021). Atualize o aplicativo para usar o novo certificado. Para saber mais, veja atualizações de certificado planejadas

Configurações de SSL padrão

Por padrão, o serviço de banco de dados deve ser configurado para exigir conexões SSL ao se conectar ao MySQL. Recomendamos evitar desabilitar a opção SSL sempre que possível.

Ao provisionar um novo servidor de Banco de Dados do Azure para MySQL por meio do Portal e CLI do Azure, a imposição de conexões SSL está habilitada por padrão.

Cadeias de conexão para várias linguagens de programação são mostradas no Portal do Azure. Essas cadeias de conexão incluem os parâmetros SSL necessários para conectar-se ao banco de dados. No Portal do Azure, selecione seu servidor. No cabeçalho Configurações, selecione as Cadeias de conexão. O parâmetro SSL varia de acordo com o conector, por exemplo "ssl=true" ou "sslmode=require" ou "sslmode=required" e outras variações.

Em alguns casos, os aplicativos requerem um arquivo de certificado local gerado a partir de um arquivo de certificado de uma Autoridade de Certificação (AC) confiável para se conectar com segurança. Atualmente, os clientes só podem usar o certificado predefinido para se conectar a um servidor do Banco de Dados do Azure para MySQL, localizado em https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem.

Da mesma forma, os links a seguir apontam para certificados de servidores em nuvens soberanas: Azure Governamental, Azure operado pela 21Vianet e Azure Alemanha.

Para saber como habilitar ou desabilitar a conexão SSL durante o desenvolvimento de aplicativos, consulte Como configurar o SSL.

Imposição do TLS no Banco de Dados do Azure para MySQL

O Banco de Dados do Azure para MySQL dá suporte à criptografia para clientes que se conectam ao servidor de banco de dados usando o protocolo TLS (armazenamento local de thread). O TLS é um protocolo padrão do setor que garante conexões de rede seguras entre o servidor de banco de dados e os aplicativos cliente, permitindo que você atenda aos requisitos de conformidade.

Configurações de protocolo TLS

O Banco de Dados do Azure para MySQL fornece a capacidade de impor a versão do TLS para as conexões de cliente. Para impor a versão do TLS, use a configuração de opção Versão mínima do TLS. Os valores a seguir são permitidos para essa configuração de opção:

Configuração de TLS mínima Versão do TLS do cliente com suporte
TLSEnforcementDisabled (padrão) Não é necessário TLS
TLS1_0 TLS 1.0, TLS 1.1, TLS 1.2 e superior
TLS1_1 TLS 1.1, TLS 1.2 e superior
TLS1_2 Versão TLS 1.2 e superior

Por exemplo, definir o valor da versão mínima de configuração do TLS como TLS 1.0 significa que seu servidor permite conexões de clientes usando TLS 1.0, 1.1 e 1.2+. Como alternativa, definir como 1.2 significa que você só permitirá conexões de clientes que usam o TLS 1.2 e superior e todas as conexões com o TLS 1.0 e o TLS 1.1 serão rejeitadas.

Observação

Por padrão, o Banco de Dados do Azure para MySQL não impõe uma versão mínima do TLS (a configuração TLSEnforcementDisabled).

Depois de aplicar uma versão mínima do TLS, você não poderá desabilitar mais tarde a imposição mínima da versão.

A configuração mínima da versão do TLS não requer que nenhuma reinicialização do servidor possa ser definida enquanto o servidor estiver online. Para saber como definir a configuração do TLS para o Banco de Dados do Azure para MySQL, veja Como definir a configuração do TLS.

Suporte Cipher do Banco de Dados do Azure para MySQL servidor único

Como parte da comunicação do protocolo SSL/TLS, os conjuntos de criptografia são validados e apenas os conjuntos de criptografia com suporte têm permissão para se comunicar com o servidor do banco de dados. A validação do conjunto de criptografia é controlada na camada do gateway e não explicitamente no próprio nó. Se os conjuntos de criptografias não corresponderem a um dos conjuntos listados abaixo, as conexões de entrada do cliente serão rejeitadas.

Conjunto de criptografia com suporte

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Próximas etapas