

# Uso do SSL com uma instância de banco de dados do Microsoft SQL Server
<a name="SQLServer.Concepts.General.SSL.Using"></a>

Você pode usar a Secure Sockets Layer (SSL) para criptografar conexões entre seus aplicativos cliente e suas instâncias de banco de dados do Amazon RDS executando o Microsoft SQL Server. O suporte a SSL está disponível em todas as regiões da AWS para todas as edições compatíveis com o SQL Server. 

Quando você cria uma instância de banco de dados do SQL Server, o Amazon RDS cria um certificado SSL para ela. O certificado SSL inclui o endpoint da instância de banco de dados como o nome comum (CN) do certificado SSL para se proteger contra ataques de falsificação. 

Há 2 maneiras de usar o SSL para se conectar a sua instância de banco de dados do SQL Server: 
+ Forçar o SSL para todas as conexões &endash; isso acontece de forma transparente para o cliente, e o cliente não precisa fazer nada para usar o SSL. 
**nota**  
Ao configurar `1` para `rds.force_ssl` e usar o SSMS versão 19.3, 20.0 e 20.2, verifique o seguinte:  
Ative o **Certificado de servidor confiável** no SSMS.
Importe o certificado no sistema.
+ Criptografar conexões específicas &endash; isso configura uma conexão SSL a partir de um computador cliente específico e você deve trabalhar no cliente para criptografar as conexões. 

Para obter informações sobre o suporte a Transport Layer Security (TLS) para SQL Server, consulte [ TLS 1.2 support for Microsoft SQL Server](https://support.microsoft.com/en-ca/help/3135244/tls-1-2-support-for-microsoft-sql-server).

## Forçar conexões à sua instância de banco de dados para usar o SSL
<a name="SQLServer.Concepts.General.SSL.Forcing"></a>

Você pode forçar todas as conexões à instância de banco de dados a usarem SSL. Se você forçar as conexões a usarem o SSL, isso acontece de forma transparente para o cliente, e o cliente não precisa fazer nada para usar o SSL. 

Se você deseja forçar o SSL, use o parâmetro `rds.force_ssl`. Por padrão, o parâmetro `rds.force_ssl` é definido como `0 (off)`. Defina o `rds.force_ssl` parâmetro como `1 (on)` para forçar as conexões a usarem o SSL. O parâmetro `rds.force_ssl` é estático, por isso, depois de alterar o valor, você deve reiniciar a instância do banco de dados para que a alteração entre em vigor. 

**Para forçar todas as conexões à instância de banco de dados a usarem SSL**

1. Determine o grupo de parâmetros a ser anexado à instância de banco de dados: 

   1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

   1. No canto superior direito do console do Amazon RDS, escolha a região da AWS da instância de banco de dados. 

   1. No painel de navegação, escolha **Databases (Bancos de dados)** e o nome da instância de banco de dados para mostrar os detalhes. 

   1. Escolha a guia **Configuration (Configuração)**. Encontre o **Parameter group** (Grupo de parâmetros) na seção. 

1. Se necessário, crie um novo parameter group. Se sua instância de banco de dados usa o parameter group padrão, você deve criar um novo parameter group. Se sua instância de banco de dados usa um parameter group diferente do padrão, você pode optar por editar o parameter group existente ou criar um novo parameter group. Se você editar um parameter group existente, a alteração afeta todas as instâncias de banco de dados que usam esse parameter group. 

   Para criar um novo parameter group, siga as instruções em [Criar um grupo de parâmetros de banco de dados no Amazon RDS](USER_WorkingWithParamGroups.Creating.md). 

1. Edite seu parameter group novo ou existente para configurar o parâmetro `rds.force_ssl` como `true`. Para editar o parameter group, siga as instruções em [Modificar parâmetros em um grupo de parâmetros de banco de dados no Amazon RDS](USER_WorkingWithParamGroups.Modifying.md). 

1. Se você criou um novo parameter group, modifique sua instância de banco de dados para anexar o novo parameter group. Modifique a configuração **DB Parameter Group (Parameter group de banco de dados)** da instância de banco de dados. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

1. Reinicialize sua instância de banco de dados. Para obter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md). 

## Criptografia de conexões específicas
<a name="SQLServer.Concepts.General.SSL.Client"></a>

É possível forçar todas as conexões de sua instância de banco de dados a usar o SSL, ou criptografar conexões somente de computadores cliente específicos. Para usar o SSL de um cliente específico, você deve obter certificados para o computador cliente, certificados de importação no computador cliente, e criptografar as conexões do computador cliente. 

**nota**  
Todas as instâncias do SQL Server criadas após 5 de agosto de 2014 usam o endpoint de instância de banco de dados no campo Common Name (CN) do certificado do SSL. Antes de 5 de agosto de 2014, a verificação de certificado do SSL não estava disponível para instâncias do SQL Server baseadas na VPC. Se você tiver uma instância de banco de dados do SQL Server baseada na VPC que foi criada antes de 5 de agosto de 2014, e você deseja usar a verificação de certificado do SSL e garantir que o endpoint da instância seja incluído como CN para o certificado do SSL dessa instância de banco de dados, então renomeie a instância. Quando você renomeia uma instância de banco de dados, um novo certificado é implantado e a instância é reiniciada para habilitar o novo certificado.

### Obter certificados para computadores cliente
<a name="SQLServer.Concepts.General.SSL.Certificates"></a>

Para criptografar conexões de um computador cliente para uma instância de banco de dados do Amazon RDS executando o Microsoft SQL Server, você precisa de um certificado no seu computador cliente. 

Para obter esse certificado, transfira o certificado para o seu computador cliente. Você pode baixar um certificado raiz que funciona para todas as regiões. Você também pode fazer dowload de um pacote de certificados que contém o certificado raiz antigo e o novo. Além disso, você pode baixar certificados intermediários específicos de região. Para obter mais informações sobre como fazer download de certificados, consulte [Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados](UsingWithRDS.SSL.md).

Após baixar o certificado apropriado, importe o certificado em seu sistema operacional Microsoft Windows seguindo o procedimento na seção a seguir. 

### Importar certificados em computadores cliente
<a name="SQLServer.Concepts.General.SSL.Importing"></a>

Você pode usar o seguinte procedimento para importar o certificado para o sistema operacional Microsoft Windows no computador cliente. 

**Para importar o certificado no sistema operacional Windows:**

1. No menu **Iniciar**, digite **Run** na caixa de pesquisa e pressione **Enter**. 

1. Na caixa **Abrir**, digite **MMC** e escolha **OK**. 

1. No menu **Arquivo** do console do MMC, escolha **Adicionar/remover snap-in**. 

1. Na caixa de diálogo **Adicionar ou remover snap-ins**, para **Snap-ins disponíveis**, selecione **Certificates** e escolha **Adicionar**. 

1. Na caixa de diálogo **Certificados de snap-in**, selecione **Conta de computador** e, em seguida, **Avançar**. 

1. Na caixa de diálogo **Selecionar computador**, selecione **Concluir**. 

1. Na caixa de diálogo **Adicionar ou remover snap-ins**, selecione **OK**. 

1. No console do MMC, expanda **Certificados**, abra o menu contextual (clique com o botão direito) para **Autoridades de certificação raiz confiáveis**, escolha **Todas as tarefas** e selecione **Importar**. 

1. Na primeira página do Assistente para Importação de Certificados, escolha **Avançar**. 

1. Na segunda página do Assistente para Importação de Certificados, escolha **Procurar**. Na janela de navegação, altere o tipo de arquivo para **Todos os arquivos (\$1.\$1)** pois .pem não é uma extensão de certificado padrão. Encontre o arquivo .pem que você baixou anteriormente. 
**nota**  
Ao se conectar por meio de clientes Windows, como o SQL Server Management Studio (SSMS), recomendamos usar o formato de certificado PKCS \$17 (.p7b) em vez do arquivo global-bundle.pem. O formato .p7b garante que toda a cadeia de certificados, inclusive autoridades de certificação (CAs) raiz e intermediárias, seja importada corretamente para o repositório de certificados do Windows. Isso evita falhas de conexão que podem ocorrer quando a criptografia obrigatória está habilitada, pois as importações .pem podem não instalar a cadeia completa corretamente.

1. Escolha **Abrir** para selecionar o arquivo de certificado, e depois escolha **Avançar**. 

1. Na terceira página do Assistente para Importação de Certificados, escolha **Avançar**. 

1. Na quarta página do Assistente para Importação de Certificados, escolha **Concluir**. É exibida uma caixa de diálogo indicando que a importação foi bem-sucedida. 

1. No console do MMC, expanda **Certificados** e depois **Autoridades de certificação raiz confiáveis**, e escolha **Certificados**. Localize o certificado para confirmar sua existência, conforme mostrado aqui.  
![\[No console do MMC, no painel de navegação, a pasta Certificados é selecionada detalhadamente entre Raiz do Console, Certificados (Computador local) e Autoridade de certificação raiz confiável. Na página principal, selecione o certificado CA necessário.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/rds_sql_ssl_cert.png)

### Criptografar conexões a uma instância de banco de dados do Amazon RDS executando o Microsoft SQL Server
<a name="SQLServer.Concepts.General.SSL.Encrypting"></a>

Após ter importado um certificado no computador cliente, você poderá criptografar conexões de um computador cliente para uma instância de banco de dados do Amazon RDS executando o Microsoft SQL Server. 

Para o SQL Server Management Studio, use o procedimento a seguir. Para obter mais informações sobre o SQL Server Management Studio, consulte [Usar o SQL Server Management Studio](http://msdn.microsoft.com/en-us/library/ms174173.aspx). 

**Para criptografar conexões do SQL Server Management Studio**

1. Inicie o SQL Server Management Studio. 

1. Em **Connect to server**, digite as informações de servidor, o nome de usuário e a senha de login. 

1. Escolha **Options**. 

1. Selecione **Encrypt connection**. 

1. Selecione **Conectar**.

1. Confirme se a sua conexão está criptografada executando a seguinte consulta. Verifique se a consulta retorna `true` para `encrypt_option`. 

   ```
   select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID
   ```

Para qualquer outro cliente de SQL, use o procedimento a seguir. 

**Para criptografar conexões de outros clientes de SQL**

1. Adicione `encrypt=true` à sua string de conexão. Essa string pode estar disponível como uma opção ou como uma propriedade na página de conexão nas ferramentas de GUI. 
**nota**  
Para habilitar a criptografia SSL para clientes que se conectam usando o JDBC, talvez seja necessário adicionar o certificado de SQL do Amazon RDS para a loja de certificados de Java CA (cacerts). Você pode fazer isso usando o utilitário [keytool](http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/keytool.html). 

1. Confirme se a sua conexão está criptografada executando a seguinte consulta. Verifique se a consulta retorna `true` para `encrypt_option`. 

   ```
   select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID
   ```