Compreendendo as alterações na alteração da autoridade de certificação raiz para o Banco de Dados SQL do Azure & Instância gerenciada SQL
O Banco de Dados SQL do Azure & Instância Gerenciada SQL alterará o certificado raiz do aplicativo/driver cliente habilitado com SSL (Secured Sockets Layer) ou TLS (Transport Layer Security), usados para estabelecer uma conexão TDS segura. O certificado raiz atual está definido para expirar em 26 de outubro de 2020 como parte das práticas recomendadas de manutenção e segurança padrão. Este artigo fornece mais detalhes sobre as próximas alterações, os recursos que serão afetados e as etapas necessárias para garantir que seu aplicativo mantenha a conectividade com o servidor de banco de dados.
Que atualização vai acontecer?
O fórum do navegador da Autoridade de Certificação (CA) publicou recentemente relatórios de vários certificados emitidos por fornecedores de CA como não compatíveis.
De acordo com os requisitos de conformidade do setor, os fornecedores de CA começaram a revogar certificados de CA para CAs não compatíveis, exigindo que os servidores usassem certificados emitidos por CAs compatíveis e assinados por certificados de CA dessas CAs compatíveis. Como o Banco de Dados SQL do Azure & Instância Gerenciada SQL atualmente usam um desses certificados não compatíveis, que os aplicativos cliente usam para validar suas conexões TLS, precisamos garantir que as ações apropriadas sejam tomadas (descritas abaixo) para minimizar o impacto potencial em seus servidores SQL do Azure.
O novo certificado será utilizado a partir de 26 de outubro de 2020. Se você usar a validação completa do certificado do servidor ao se conectar de um cliente SQL (TrustServerCertificate=false), precisará garantir que seu cliente SQL seja capaz de validar o novo certificado raiz antes de 26 de outubro de 2020.
Como sei se a minha candidatura pode ser afetada?
Todos os aplicativos que usam SSL/TLS e verificam o certificado raiz precisam atualizar o certificado raiz para se conectar ao Banco de Dados SQL do Azure & Instância Gerenciada SQL do Azure.
Se você não estiver usando SSL/TLS atualmente, não haverá impacto na disponibilidade do seu aplicativo. Você pode verificar se seu aplicativo cliente está tentando verificar o certificado raiz examinando a cadeia de conexão. Se TrustServerCertificate estiver explicitamente definido como true, você não será afetado.
Se o driver do seu cliente utiliza o armazenamento de certificados do sistema operacional, como a maioria dos drivers, e seu sistema operacional é mantido regularmente, essa alteração provavelmente não o afetará, pois o certificado raiz para o qual estamos mudando já deve estar disponível no seu Armazenamento de Certificados Raiz Confiável. Verifique se há Baltimore CyberTrust Root e DigiCert GlobalRoot G2 Root e valide-o está presente.
Se o driver do cliente utilizar o armazenamento de certificados de arquivo local, para evitar que a disponibilidade do aplicativo seja interrompida devido à revogação inesperada de certificados, ou para atualizar um certificado que foi revogado, consulte a seção O que preciso fazer para manter a conectividade.
O que preciso fazer para manter a conectividade
Para evitar que a disponibilidade do aplicativo seja interrompida devido a certificados serem revogados inesperadamente ou para atualizar um certificado que foi revogado, siga estas etapas:
Baixar Baltimore CyberTrust Root & DigiCert GlobalRoot G2 Root CA:
Gere um armazenamento de certificados de CA combinado com os certificados BaltimoreCyberTrustRoot e DigiCertGlobalRootG2 incluídos.
Qual pode ser o impacto?
Se você estiver validando certificados de servidor conforme documentado aqui, a disponibilidade do seu aplicativo poderá ser interrompida, pois o banco de dados não estará acessível. Dependendo do seu aplicativo, você pode receber uma variedade de mensagens de erro, incluindo, mas não limitado a:
- Certificado inválido/certificado revogado
- Excedido o limite de tempo da ligação
- Erro, se aplicável
Perguntas mais frequentes
Se eu não estiver usando SSL/TLS, ainda preciso atualizar a autoridade de certificação raiz?
Nenhuma ação em relação a essa alteração será necessária se você não estiver usando SSL/TLS. Ainda assim, você deve definir um plano para começar a usar a versão mais recente do TLS, pois planejamos a aplicação do TLS em um futuro próximo.
O que acontecerá se eu não atualizar o certificado raiz antes de 26 de outubro de 2020?
Se você não atualizar o certificado raiz antes de 30 de novembro de 2020, seus aplicativos que se conectam via SSL/TLS e fazem a verificação do certificado raiz não poderão se comunicar com o Banco de Dados SQL do Azure & Instância Gerenciada SQL e o aplicativo enfrentará problemas de conectividade com seu Banco de Dados SQL do Azure & Instância Gerenciada SQL.
Preciso planejar um tempo de inatividade de manutenção para essa alteração?
Não Como a alteração está apenas no lado do cliente para se conectar ao servidor, não há tempo de inatividade de manutenção necessário aqui para essa alteração.
E se eu não conseguir obter um tempo de inatividade programado para essa alteração antes de 26 de outubro de 2020?
Como os clientes usados para se conectar ao servidor precisam atualizar as informações do certificado conforme descrito na seção de correção aqui, não precisamos de um tempo de inatividade para o servidor neste caso.
Se eu criar um novo servidor após 30 de novembro de 2020, serei afetado?
Para servidores criados após 26 de outubro de 2020, você pode usar o certificado recém-emitido para seus aplicativos se conectarem usando SSL/TLS.
Com que frequência a Microsoft atualiza seus certificados ou qual é a política de expiração?
Esses certificados usados pelo Banco de Dados SQL do Azure & Instância Gerenciada SQL são fornecidos por Autoridades de Certificação (CA) confiáveis. Portanto, o suporte desses certificados no Banco de Dados SQL do Azure & Instância Gerenciada SQL está vinculado ao suporte desses certificados pela CA. No entanto, como neste caso, pode haver bugs imprevistos nesses certificados predefinidos, que precisam ser corrigidos o mais cedo possível.
Se eu estiver usando réplicas de leitura, preciso executar essa atualização somente no servidor primário ou em todas as réplicas de leitura?
Como essa atualização é uma alteração do lado do cliente, se o cliente costumava ler dados do servidor de réplica, precisaremos aplicar as alterações para esses clientes também.
Temos uma consulta do lado do servidor para verificar se SSL/TLS está sendo usado?
Como essa configuração é do lado do cliente, as informações não estão disponíveis no lado do servidor.
E se eu tiver mais perguntas?
Se você tiver um plano de suporte e precisar de ajuda técnica, crie uma solicitação de suporte do Azure, consulte Como criar uma solicitação de suporte do Azure.