Casos especiais para criptografar conexões com o SQL Server
Um computador cliente precisa confiar no certificado do servidor para que o cliente possa solicitar a criptografia TLS e o certificado já deve existir no servidor. O cenário mais comum para criptografia de SQL Server envolve ambientes que:
- Forçam a criptografia de todas as conexões de cliente de entrada ao SQL Server.
- Usam certificados de uma autoridade de certificação comercial pública em que o Windows já confia. O certificado raiz correspondente da AC é instalado no repositório de certificados das Autoridades de Certificação Raiz Confiáveis em todos os computadores da sua rede.
Nesse cenário, você não precisa executar etapas adicionais para criptografar com sucesso após configurar o SQL Server para criptografia de acordo com o procedimento descrito em Configurar o mecanismo de banco de dados do SQL Server para criptografar conexões. Este artigo fornece os procedimentos para criptografar conexões com o SQL Server para cenários menos comuns, que não são abordados em Configurar o mecanismo de banco de dados do SQL Server para criptografar conexões.
Observação
Para obter uma lista completa de participantes do Programa Raiz Confiável da Microsoft, confira Lista de participantes – Programa Raiz Confiável da Microsoft.
Usar um certificado emitido por uma autoridade de certificação comercial pública e apenas alguns clientes precisarão de conexões criptografadas
Configure o certificado no SQL Server de acordo com o procedimento documentado em Configurar o SQL Server para usar certificados.
Especifique a palavra-chave de criptografia nas propriedades de conexão como Yes ou True. Por exemplo, se você estiver usando o Microsoft ODBC Driver for SQL Server, a cadeia de conexão deverá especificar
Encrypt=yes;
.
Usar um certificado emitido por uma AC interna ou criado usando New-SelfSignedCertificate ou makecert
Cenário 1: você deseja criptografar todas as conexões com o SQL Server
Depois de concluir ambos procedimentos descritos na Etapa 1: configurar o SQL Server para usar certificados e na Etapa 2: definir configurações de criptografia no SQL Server, documentadas em Configurar mecanismo de banco de dados do SQL Server para criptografar conexões, use uma das opções a seguir para configurar seu aplicativo cliente para criptografia.
Opção 1: configure os aplicativos cliente para Confiar no Certificado do Servidor. Essa configuração faz com que o cliente ignore a etapa que valida o certificado do servidor e prossiga com o processo de criptografia. Por exemplo, se você estiver usando o SSMS (SQL Server Management Studio) 20 e versões posteriores, selecione Confiar em Certificado do Servidor na página Logon (ou na página Opções em versões anteriores).
Opção 2: em cada cliente, adicione a autoridade emissora do certificado ao repositório de autoridades raiz confiáveis executando as seguintes etapas:
Exporte o certificado de um computador que está executando o SQL Server usando o procedimento documentado em Exportar certificado do servidor.
Importe o certificado usando o procedimento documentado em Exportar e importar certificados.
Cenário 2: apenas alguns clientes precisam de conexões criptografadas
Depois de configurar o certificado do SQL Server, use conforme documentado na Etapa 1: configurar o SQL Server para usar certificados em Configurar o mecanismo de banco de dados do SQL Server para criptografar conexões e use uma das seguintes opções para configurar seu aplicativo cliente para criptografia:
Opção 1: configure os aplicativos cliente para confiar no certificado do servidor e especifique a palavra-chave de criptografia nas propriedades de conexão como Yes ou True. Por exemplo, se você estiver usando o Microsoft ODBC Driver for SQL Server, a cadeia de conexão deverá especificar Encrypt=Yes;TrustServerCertificate=Yes;
.
Para obter mais informações sobre certificados de servidor e criptografia, confira Como usar o TrustServerCertificate.
Opção 2: em cada cliente, adicione a autoridade emissora do certificado ao repositório de autoridades raiz confiáveis e especifique os parâmetros de criptografia como Yes na cadeia de conexão:
Exporte o certificado de um computador que está executando o SQL Server usando o procedimento documentado em Exportar certificado.
Especifique a palavra-chave de criptografia nas propriedades de conexão como Yes ou True. Por exemplo, se você estiver usando o Microsoft OLEDB Driver for SQL Server, a cadeia de conexão deverá especificar Use Encryption for Data = True;
Usar o certificado autoassinado criado automaticamente pelo SQL Server
Cenário 1: você deseja criptografar todas as conexões de entrada com o SQL Server
Habilite a criptografia no SQL Server usando o procedimento descrito na Etapa 2: definir configurações de criptografia no SQL Server, documentado em Configurar o mecanismo de banco de dados do SQL Server para criptografar conexões.
Configure os aplicativos cliente para confiar no certificado do servidor. Confiar no certificado do servidor fará com que o cliente ignore a etapa que valida esse certificado e prossiga com o processo de criptografia. Por exemplo, se você estiver usando o SSMS (SQL Server Management Studio) 20 e versões posteriores, selecione Confiar em Certificado do Servidor na página Logon (ou na página Opções em versões anteriores).
Cenário 2: apenas alguns clientes precisam de conexões criptografadas
Configure os aplicativos cliente para confiar no certificado do servidor e especifique a palavra-chave de criptografia nas propriedades de conexão como Yes ou True. Por exemplo, se você estiver usando o Microsoft ODBC Driver for SQL Server, a cadeia de conexão deverá especificar Encrypt=Yes;TrustServerCertificate=Yes;
.
Nenhuma configuração extra é necessária no SQL Server para este cenário.
Aviso
As conexões SSL criptografadas por meio de um certificado autoassinado não fornecem uma segurança forte porque o comprimento da chave nos certificados autoassinados é menor do que a chave nos certificados gerados pela AC. Elas são suscetíveis a ataques “man-in-the-middle”. Você não deve confiar no SSL usando certificados autoassinados em um ambiente de produção ou em servidores conectados à Internet.