Adição de certificado ao SQL Server
Caso os serviços apresentem o seguinte log de erro:
Microsoft.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed)
É necessário adicionar um certificado ao SQL server. Para isso, siga os passos:
Gerar certificado
Na sua maquina local, execute os script create certificate, substituindo <server-name> pelo nome do servidor
O nome pode ser pego executando o seguinte comando no servidor.
[System.Net.Dns]::GetHostByName($env:computerName)
Após a criação do certificado, é necessário exporta-lo:
Acesse o serviço
mmc.exeFile->Add/Remove Snap-in->Certificates->Computer account->Next->Finish->OKNa aba de certificados, haverá um certificado com o nome da servidor, com a data de expiração para daqui 60 anos (a data de expiração deve ser alta)
Exportar certificado:
Clique com o botão direito no certificado ->
All Tasks->ExportExporte a chave privada (private key), selecionando os seguintes:
[o] Personal Information Exchange - PKCS [x] Include all certificates in the certification path if possible [ ] Delete the private key if the expert is successful [x] Export all extended properties [x] Enable certificate privacy
Crie uma senha qualquer, de preferencia com a criptografia
TripleDES-SHA1.
Importe o certificado no servidor do cliente:
Acesse o serviço
mmc.exeFile->Add/Remove Snap-in->Certificates->Computer account->Next->Finish->OKClique com o botão direito em qualquer lugar vazio ->
All Tasks->Import-> selecione o certificado criado no passo anterior -> coloque a senha, e prossiga.
Adicionar permissão ao usuário do SQL server
Abrir
servicesdo windows -> abrir as propriedades deSQL Server->Log On-> caso esteja selecionadoThis account, copiar o nome da conta, e seguir esse passo, caso contrário pular para próximo passoAcesse o serviço
mmc.exeFile->Add/Remove Snap-in->Certificates->Computer account->Next->Finish->OKClicar com botão direito no certificado importado ->
All Tasks->Manage Private Keys->Security-> adicionar novo elemento com o nome copiado do passo anterior.Garantir todas as permissões para o usuário adicionado.
Adicionar certificado no SQL Server
Abra o
SQL Server Configuration Managerno servidor do cliente.SQL Server Network Configuration-> clique com o botão direito emProtocols for MSSQLSERVER->Properties->Certificate-> Selecione o certificado importado anteriormente. Ainda não reinicie o SQL.
Configuração de TLS no servidor
Faça o download da ferramenta IIS Crypto
Em
Schannel, Garanta queTLS 1.2está habilitado. (check box deve estar marcada)Em
Cipher Suitesadicione:TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256
Caso as outras opções sejam desmarcadas durante a criação das acima, as marque novamente!
Aplique as configurações
O programa irá pedir reiniciar a maquina. Pedir autorização do cliente, pois o KORP irá ficar fora.
Caso não seja possível reiniciar o servidor no momento, marcar um horário com cliente.
—
Documentação utilizada de base: https://learn.microsoft.com/en-US/sql/database-engine/configure-windows/configure-sql-server-encryption?view=sql-server-ver16