Casos especiais para criptografar conexões com o SQL Server
O computador cliente deve 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 SQL Server Management Studio, poderá selecionar Confiar no Certificado do Servidor na página Opções.
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;Trust Server Certificate=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.
- Importar 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 SQL Server Management Studio, poderá selecionar Confiar no Certificado do Servidor na página Opções.
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;Trust Server Certificate=Yes;
.
O SQL Server não requer nenhuma configuração adicional para esse cenário.
Aviso
As conexões SSL criptografadas usando 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.