Habilitar conexões criptografadas com o Mecanismo de Banco de DadosEnable Encrypted Connections to the Database Engine

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Este tópico descreve como habilitar conexões criptografadas para uma instância do Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine especificando um certificado para o Mecanismo de Banco de DadosDatabase Engine usando o SQL ServerSQL Server Configuration Manager.This topic describes how to enable encrypted connections for an instance of the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine by specifying a certificate for the Mecanismo de Banco de DadosDatabase Engine using SQL ServerSQL Server Configuration Manager. O computador servidor deve ter um certificado configurado e a máquina cliente deve estar configurada para confiar na autoridade raiz do certificado.The server computer must have a certificate provisioned, and the client machine must be set up to trust the certificate's root authority. Provisionamento é o processo de instalar um certificado importando-o para o Windows.Provisioning is the process of installing a certificate by importing it into Windows.

Importante

Após o SQL Server 2016 (13.x)SQL Server 2016 (13.x), o protocolo SSL foi descontinuado.Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x), Secure Sockets Layer (SSL) has been discontinued. Use o protocolo TLS em vez disso.Use Transport Layer Security (TLS) instead.

Protocolo TLSTransport Layer Security (TLS)

O SQL ServerSQL Server pode usar o Protocolo TLS para criptografar dados transmitidos em uma rede entre uma instância de SQL ServerSQL Server e um aplicativo cliente.SQL ServerSQL Server can use Transport Layer Security (TLS) to encrypt data that is transmitted across a network between an instance of SQL ServerSQL Server and a client application. A criptografia TLS é realizada dentro da camada de protocolo e está disponível para todos os clientes SQL ServerSQL Server com suporte.The TLS encryption is performed within the protocol layer and is available to all supported SQL ServerSQL Server clients. O TLS pode ser usado para validação de servidor quando uma conexão de cliente solicita criptografia.TLS can be used for server validation when a client connection requests encryption. Se a instância do SQL ServerSQL Server estiver sendo executada em um computador ao qual foi atribuído um certificado de uma autoridade de certificação pública, a identidade do computador e a instância do SQL ServerSQL Server serão emitidas pela cadeia de certificados que leva à autoridade raiz confiável.If the instance of SQL ServerSQL Server is running on a computer that has been assigned a certificate from a public certification authority, identity of the computer and the instance of SQL ServerSQL Server is vouched for by the chain of certificates that lead to the trusted root authority. Essa validação de servidor exige que o computador no qual o aplicativo cliente está sendo executado seja configurado para confiar na autoridade raiz do certificado que é usado pelo servidor.Such server validation requires that the computer on which the client application is running be configured to trust the root authority of the certificate that is used by the server. A criptografia com um certificado autoassinado é possível e está descrita na seção a seguir, mas um certificado autoassinado oferece apenas proteção limitada.Encryption with a self-signed certificate is possible and is described in the following section, but a self-signed certificate offers only limited protection. O nível de criptografia usado pelo TLS, 40 ou 128 bits, depende da versão do sistema operacional do Microsoft Windows em execução no aplicativo e nos computadores do banco de dados.The level of encryption used by TLS, 40-bit or 128-bit, depends on the version of the Microsoft Windows operating system that is running on the application and database computers.

Aviso

O uso do nível de criptografia de 40 bits é considerado inseguro.Usage of 40-bit encryption level is considered unsafe.

Aviso

As conexões TLS criptografadas usando um certificado autoassinado não fornecem alta segurança.TLS connections that are encrypted by using a self-signed certificate do not provide strong security. Elas são suscetíveis a ataques man-in-the-middle.They are susceptible to man-in-the-middle attacks. Não se deve confiar no TLS usando certificados autoassinados em um ambiente de produção ou em servidores conectados à Internet.You should not rely on TLS using self-signed certificates in a production environment or on servers that are connected to the Internet.

A habilitação da criptografia TLS aumenta a segurança dos dados transmitidos pelas redes entre instâncias do SQL ServerSQL Server e aplicativos.Enabling TLS encryption increases the security of data transmitted across networks between instances of SQL ServerSQL Server and applications. No entanto, quando todo o tráfego entre o SQL ServerSQL Server e um aplicativo cliente é criptografado usando TLS, o seguinte processamento adicional é necessário:However, when all traffic between SQL ServerSQL Server and a client application is encrypted using TLS, the following additional processing is required:

  • Idas e voltas extras da rede são necessárias no momento da conexão.An extra network roundtrip is required at connect time.
  • Os pacotes enviados do aplicativo para a instância do SQL ServerSQL Server devem ser criptografados pela pilha TLS do cliente e descriptografados pela pilha TLS do servidor.Packets sent from the application to the instance of SQL ServerSQL Server must be encrypted by the client TLS stack and decrypted by the server TLS stack.
  • Os pacotes enviados da instância do SQL ServerSQL Server para o aplicativo devem ser criptografados pela pilha TLS do servidor e descriptografados pela pilha TLS do cliente.Packets sent from the instance of SQL ServerSQL Server to the application must be encrypted by the server TLS stack and decrypted by the client TLS stack.

RemarksRemarks

O certificado deve ser emitido para Autenticação do Servidor.The certificate must be issued for Server Authentication. O nome do certificado deve ser o FQDN (nome de domínio totalmente qualificado) do computador.The name of the certificate must be the fully qualified domain name (FQDN) of the computer.

Os certificados são armazenados localmente para os usuários no computador.Certificates are stored locally for the users on the computer. Para instalar um certificado para uso do SQL ServerSQL Server, é necessário executar o SQL ServerSQL Server Configuration Manager com uma conta que tem privilégios de administrador local.To install a certificate for use by SQL ServerSQL Server, you must be running SQL ServerSQL Server Configuration Manager with an account that has local administrator privileges.

O cliente deve poder verificar a propriedade do certificado usado pelo servidor.The client must be able to verify the ownership of the certificate used by the server. Se o cliente tiver o certificado de chave pública da autoridade de certificação que assinou o certificado de servidor, nenhuma outra configuração será necessária.If the client has the public key certificate of the certification authority that signed the server certificate, no further configuration is necessary. MicrosoftMicrosoft Windows inclui os certificados de chave pública de muitas autoridades de certificação.Windows includes the public key certificates of many certification authorities. Se o certificado do servidor foi assinado por uma autoridade de certificação pública ou privada para a qual o cliente não tem o certificado de chave pública, será necessário instalar o certificado de chave pública da autoridade de certificação que assinou o certificado do servidor.If the server certificate was signed by a public or private certification authority for which the client does not have the public key certificate, you must install the public key certificate of the certification authority that signed the server certificate.

Observação

Para usar critografia com um cluster de failover, você deve instalar o certificado de servidor com o nome DNS completamente qualificado do servidor virtual em todos os nós no cluster de failover.To use encryption with a failover cluster, you must install the server certificate with the fully qualified DNS name of the virtual server on all nodes in the failover cluster. Por exemplo, se você tiver um cluster de dois nós, com nós chamados test1.*<sua empresa>*.com e test2.*<sua empresa>*.com e tiver um servidor virtual chamado virtsql, será necessário instalar um certificado para virtsql.*<sua empresa>*.com nos dois nós.For example, if you have a two-node cluster, with nodes named test1.*<your company>*.com and test2.*<your company>*.com, and you have a virtual server named virtsql, you need to install a certificate for virtsql.*<your company>*.com on both nodes. É possível definir o valor da opção ForceEncryption na caixa de propriedade Protocolos para virtsql de Configuração de Rede do SQL Server como Sim.You can set the value of the ForceEncryption option on the Protocols for virtsql property box of SQL Server Network Configuration to Yes.

Observação

Ao criar conexões criptografadas para um indexador do Azure Search para SQL ServerSQL Server em uma VM do Azure, confira Configurar uma conexão de um indexador do Azure Search para SQL Server em uma VM do Azure.When creating encrypted connections for an Azure Search indexer to SQL ServerSQL Server on an Azure VM, see Configure a connection from an Azure Search indexer to SQL Server on an Azure VM.

Requisitos de certificadoCertificate Requirements

Para o SQL ServerSQL Server carregar um certificado TLS, o certificado deve atender às seguintes condições:For SQL ServerSQL Server to load a TLS certificate, the certificate must meet the following conditions:

  • O certificado deve estar no repositório de certificado do computador local ou no armazenamento de certificado do usuário atual.The certificate must be in either the local computer certificate store or the current user certificate store.

  • A Conta de Serviço do SQL ServerSQL Server deve ter a permissão necessária para acessar o certificado TLS.The SQL ServerSQL Server Service Account must have the necessary permission to access the TLS certificate.

  • A hora do sistema atual deve ser posterior à propriedade Válido de do certificado e anterior à propriedade Válido para do certificado.The current system time must be after the Valid from property of the certificate and before the Valid to property of the certificate.

  • O certificado deve ser significativo para a autenticação do servidor.The certificate must be meant for server authentication. Isso exige a propriedade Uso Avançado de Chave do certificado para especificar a Autenticação do Servidor (1.3.6.1.5.5.7.3.1) .This requires the Enhanced Key Usage property of the certificate to specify Server Authentication (1.3.6.1.5.5.7.3.1).

  • O certificado deve ser criado usando a opção KeySpec de AT_KEYEXCHANGE.The certificate must be created by using the KeySpec option of AT_KEYEXCHANGE. Normalmente, a propriedade de uso de chave do certificado (KEY_USAGE) também incluirá a codificação de chaves (CERT_KEY_ENCIPHERMENT_KEY_USAGE).Usually, the certificate's key usage property (KEY_USAGE) will also include key encipherment (CERT_KEY_ENCIPHERMENT_KEY_USAGE).

  • A propriedade Assunto do certificado deve indicar que o nome comum (CN) é igual ao nome do host ou ao nome de domínio totalmente qualificado (FQDN) do computador servidor.The Subject property of the certificate must indicate that the common name (CN) is the same as the host name or fully qualified domain name (FQDN) of the server computer. Ao usar o nome do host, o sufixo DNS precisa ser especificado no certificado.When using the host name, the DNS suffix must be specified in the certificate. Se o SQL ServerSQL Server estiver em execução em um cluster de failover, o nome comum deverá corresponder ao nome do host ou ao FQDN do servidor virtual e os certificados deverão ser fornecidos em todos os nós no cluster de failover.If SQL ServerSQL Server is running on a failover cluster, the common name must match the host name or FQDN of the virtual server and the certificates must be provisioned on all nodes in the failover cluster.

  • O SQL Server 2008 R2SQL Server 2008 R2 e o SQL Server 2008 R2SQL Server 2008 R2 SNAC (Cliente Nativo) dão suporte a certificados curinga.SQL Server 2008 R2SQL Server 2008 R2 and the SQL Server 2008 R2SQL Server 2008 R2 Native Client (SNAC) support wildcard certificates. O SNAC foram preteridos desde então e substituídos pelo Driver do Microsoft OLE DB para SQL Server e Microsoft ODBC Driver for SQL Server.SNAC has since been deprecated and replaced with the Microsoft OLE DB Driver for SQL Server and Microsoft ODBC Driver for SQL Server. Outros clientes podem não dar suporte a certificados curinga.Other clients might not support wildcard certificates. Para obter mais informações, confira a documentação do cliente e o KB 258858.For more information, see the client documentation and KB 258858.
    O certificado curinga não pode ser selecionado usando o SQL Server Configuration Manager.Wildcard certificate cannot be selected by using the SQL Server Configuration Manager. Para usar um certificado curinga, é necessário editar a chave do Registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQLServer\SuperSocketNetLib e inserir a impressão digital do certificado, sem espaços, no valor Certificado.To use a wildcard certificate, you must edit the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQLServer\SuperSocketNetLib registry key, and enter the thumbprint of the certificate, without spaces, to the Certificate value.

    Aviso

    A edição incorreta do Registro pode danificar seriamente o sistema.Incorrectly editing the registry can severely damage your system. Antes de fazer alterações no Registro, é recomendável fazer backup dos dados importantes no computador.Before making changes to the registry, we recommend that you back up any valued data on the computer.

Para provisionar (instalar) um certificado em um servidor únicoTo provision (install) a certificate on a single server

Com SQL Server 2019 (15.x)SQL Server 2019 (15.x), o gerenciamento de certificados integra-se ao SQL Server Configuration Manager.With SQL Server 2019 (15.x)SQL Server 2019 (15.x), certificate management is integrated into the SQL Server Configuration Manager. O SQL Server Configuration Manager para SQL Server 2019 (15.x)SQL Server 2019 (15.x) pode ser usado com versões anteriores do SQL ServerSQL Server.SQL Server Configuration Manager for SQL Server 2019 (15.x)SQL Server 2019 (15.x) can be used with earlier versions of SQL ServerSQL Server. Consulte Gerenciamento de Certificado (SQL Server Configuration Manager) para adicionar um certificado em uma instância do SQL ServerSQL Server única.Refer to Certificate Management (SQL Server Configuration Manager) to add a certificate on a single SQL ServerSQL Server instance.

Se estiver usando SQL Server 2012 (11.x)SQL Server 2012 (11.x) por meio do SQL Server 2017 (14.x)SQL Server 2017 (14.x) e o SQL Server Configuration Manager para SQL Server 2019 (15.x)SQL Server 2019 (15.x) não estiver disponível, siga estas etapas:If using SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017 (14.x)SQL Server 2017 (14.x), and SQL Server Configuration Manager for SQL Server 2019 (15.x)SQL Server 2019 (15.x) is not available, follow these steps:

  1. No menu Iniciar , clique em Executare na caixa Abrir , digite MMC e clique em OK.On the Start menu, click Run, and in the Open box, type MMC and click OK.

  2. No console do MMC, no menu Arquivo , clique em Adicionar/Remover Snap-in.In the MMC console, on the File menu, click Add/Remove Snap-in.

  3. Na caixa de diálogo Adicionar/Remover Snap-in , clique em Adicionar.In the Add/Remove Snap-in dialog box, click Add.

  4. Na caixa de diálogo Adicionar Snap-in Autônomo , clique em Certificadose em Adicionar.In the Add Standalone Snap-in dialog box, click Certificates, click Add.

  5. Na caixa de diálogo Snap-in de certificados , clique em Conta de computadore em Concluir.In the Certificates snap-in dialog box, click Computer account, and then click Finish.

  6. Na caixa de diálogo Adicionar Snap-in Autônomo , clique em Fechar.In the Add Standalone Snap-in dialog box, click Close.

  7. Na caixa de diálogo Adicionar/Remover Snap-in , clique em OK.In the Add/Remove Snap-in dialog box, click OK.

  8. No snap-in de Certificados , expanda Certificados, expanda Pessoal, clique com o botão direito do mouse em Certificados, aponte para Todas as Tarefase clique em Importar.In the Certificates snap-in, expand Certificates, expand Personal, and then right-click Certificates, point to All Tasks, and then click Import.

  9. Clique com o botão direito do mouse no certificado importado, aponte para Todas as Tarefase clique em Gerenciar Chaves Privadas.Right-click the imported certificate, point to All Tasks, and then click Manage Private Keys. Na caixa de diálogo Segurança, adicione a permissão de leitura para a conta de usuário usada pela conta de serviço do SQL ServerSQL Server.In the Security dialog box, add read permission for the user account used by the SQL ServerSQL Server service account.

  10. Complete o Assistente para Importação de Certificados, para adicionar um certificado ao computador e feche o console MMC.Complete the Certificate Import Wizard, to add a certificate to the computer, and close the MMC console. Para obter mais informações sobre como adicionar um certificado a um computador, consulte sua documentação do Windows.For more information about adding a certificate to a computer, see your Windows documentation.

Para provisionar (instalar) um certificado em vários servidoresTo provision (install) a certificate across multiple servers

Com SQL Server 2019 (15.x)SQL Server 2019 (15.x), o gerenciamento de certificados integra-se ao SQL Server Configuration Manager.With SQL Server 2019 (15.x)SQL Server 2019 (15.x), certificate management is integrated into the SQL Server Configuration Manager. O SQL Server Configuration Manager para SQL Server 2019 (15.x)SQL Server 2019 (15.x) pode ser usado com versões anteriores do SQL ServerSQL Server.SQL Server Configuration Manager for SQL Server 2019 (15.x)SQL Server 2019 (15.x) can be used with earlier versions of SQL ServerSQL Server. Consulte Gerenciamento de Certificados (SQL Server Configuration Manager) para adicionar um certificado em uma configuração do Cluster de Failover ou em uma configuração do Grupo de Disponibilidade.Refer to Certificate Management (SQL Server Configuration Manager) to add a certificate in a Failover Cluster configuration or in an Availability Group configuration.

Se estiver usando o SQL Server 2012 (11.x)SQL Server 2012 (11.x) por meio do SQL Server 2017 (14.x)SQL Server 2017 (14.x) e o SQL Server Configuration Manager para SQL Server 2019 (15.x)SQL Server 2019 (15.x) não estiver disponível, siga as etapas na seção Provisionar (instalar) um certificado em um único servidor para cada servidor.If using SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017 (14.x)SQL Server 2017 (14.x), and SQL Server Configuration Manager for SQL Server 2019 (15.x)SQL Server 2019 (15.x) is not available, follow the steps in section To provision (install) a certificate on a single server for every server.

Para exportar o certificado de servidorTo export the server certificate

  1. No snap-in de Certificados, localize o certificado na pasta Certificados / Pessoal, clique com o botão direito do mouse em Certificado, aponte para Todas as Tarefas e clique em Exportar.From the Certificates snap-in, locate the certificate in the Certificates / Personal folder, right-click the Certificate, point to All Tasks, and then click Export.

  2. Complete o Assistente para Exportação de Certificadosarmazenando o arquivo de certificado em um local conveniente.Complete the Certificate Export Wizard, storing the certificate file in a convenient location.

Para configurar o servidor para forçar conexões criptografadasTo configure the server to force encrypted connections

Importante

A conta de serviço do SQL Server deve ter permissões de leitura no certificado usado para forçar a criptografia no SQL Server.The SQL Server Service Account must have read permissions on the certicate used to force encryption on the SQL Server. Para uma conta de serviço sem privilégios, as permissões de leitura precisarão ser adicionadas ao certificado.For a non-privileged service account, read permissions will need to be added to the certificate. A falha em fazer isso pode fazer com que a reinicialização do serviço do SQL Server falhe.Failure to do so can cause the SQL Server service restart to fail.

  1. No SQL Server Configuration Manager, expanda Configuração de Rede do SQL Server, clique com o botão direito do mouse em Protocolos de <server instance> e, depois, selecione Propriedades.In SQL Server Configuration Manager, expand SQL Server Network Configuration, right-click Protocols for <server instance>, and then selectProperties.

  2. Na caixa de diálogo Propriedades de Protocolos de <instance name> , na guia Certificado, selecione o certificado desejado na lista suspensa da caixa Certificado e, depois, clique em OK.In the Protocols for <instance name> Properties dialog box, on the Certificate tab, select the desired certificate from the drop-down for the Certificate box, and then click OK.

  3. Na guia Sinalizadores , na caixa ForceEncryption , selecione Sime clique em OK para fechar a caixa de diálogo.On the Flags tab, in the ForceEncryption box, select Yes, and then click OK to close the dialog box.

  4. Reinicie o serviço SQL ServerSQL Server .Restart the SQL ServerSQL Server service.

Observação

Para garantir a conectividade segura entre o cliente e o servidor, configure o cliente para solicitar conexões criptografadas.To ensure secure connectivity between client and server, configure the client to request encrypted connections. Mais detalhes são explicados mais adiante neste artigo.More details are explained later in this article.

Para configurar o cliente para solicitar conexões criptografadasTo configure the client to request encrypted connections

  1. Copie o certificado original ou o arquivo de certificado exportado no computador cliente.Copy either the original certificate or the exported certificate file to the client computer.

  2. No computador cliente, use o snap-in de Certificados para instalar o certificado raiz ou o arquivo do certificado exportado.On the client computer, use the Certificates snap-in to install either the root certificate or the exported certificate file.

  3. Usando o SQL Server Configuration Manager, clique com o botão direito do mouse em Configuração do SQL Server Native Client e clique em Propriedades.Using SQL Server Configuration Manager, right-click SQL Server Native Client Configuration, and then click Properties.

  4. Na página Sinalizadores , na caixa Forçar criptografia de protocolo , clique em Sim.On the Flags page, in the Force protocol encryption box, click Yes.

Para criptografar uma conexão do SQL Server Management StudioTo encrypt a connection from SQL Server Management Studio

  1. Na barra de ferramentas do Pesquisador de Objetos, clique em Conectare clique em Mecanismo de Banco de Dados.On the Object Explorer toolbar, click Connect, and then click Database Engine.

  2. Na caixa de diálogo Conectar ao Servidor , complete as informações de conexão e clique em Opções.In the Connect to Server dialog box, complete the connection information, and then click Options.

  3. Na guia Propriedades de Conexão , clique em Criptografar conexão.On the Connection Properties tab, click Encrypt connection.

Protocolo IPsecInternet Protocol Security (IPSec)

O SQL ServerSQL Server pode ser criptografado durante a transmissão usando o IPSec.SQL ServerSQL Server data can be encrypted during transmission by using IPSec. O IPSec é fornecido pelos sistemas operacionais do cliente e servidor e não requer nenhuma configuração do SQL ServerSQL Server.IPSec is provided by the client and server operating systems and requires no SQL ServerSQL Server configuration. Para obter informações sobre o IPSec, consulte a documentação de rede ou do Windows.For information about IPSec, see your Windows or networking documentation.

Consulte TambémSee Also

Suporte a TLS 1.2 para o Microsoft SQL Server TLS 1.2 support for Microsoft SQL Server
Configurar o Firewall do Windows para permitir acesso ao SQL Server Configure the Windows Firewall to Allow SQL Server Access
Criptografia do SQL ServerSQL Server Encryption