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:

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

  1. Configure o certificado no SQL Server de acordo com o procedimento documentado em Configurar o SQL Server para usar certificados.

  2. 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:

  1. Exporte o certificado de um computador que está executando o SQL Server usando o procedimento documentado em Exportar certificado do servidor.

  2. 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:

  1. Exporte o certificado de um computador que está executando o SQL Server usando o procedimento documentado em Exportar certificado.

  2. Importar certificado.

  3. 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

  1. 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.

  2. 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.