Adicione este parâmetro para a string de conexão: TrustServerCertificate=true
Resolvido no meu caso.
Eu tenho uma instância do Serviço de Banco de Dados Relacional (RDS) da Amazon Web Services (AWS) executando o SQL Server 2012 Express.
Instalei o certificado aws.amazon.com/rds da Amazon na loja de Autoridades de Certificação Raiz Confiáveis da máquina cliente.
No entanto, quando me conecto à instância do RDS (usando o SQL Server Management Studio 2012) e marquei "Encrypt Connection", recebo o seguinte erro:
Uma conexão foi estabelecida com sucesso com o servidor, mas ocorreu um erro durante o processo de login. (provider: SSL Provider, error: 0 - O nome principal do target está incorreto.) (Microsoft SQL Server)
O que isso significa e como posso corrigi-lo? Obrigado!
Adicione este parâmetro para a string de conexão: TrustServerCertificate=true
Resolvido no meu caso.
Originalmente, estávamos usando o nome curto que parecia funcionar por algum tempo. No entanto, por algum motivo depois, ele parou de funcionar ao enviar esta mensagem de erro.
Quando o alteramos para o FQDN, ele pareceu resolver o problema e permitir que ele se conecte novamente, para que qualquer um que tenha esse problema, como uma solução rápida, queira verificar se está usando apenas o nome abreviado do servidor e Em caso afirmativo, tente usar o nome de domínio totalmente qualificado.
O erro ocorre porque a Amazon não define o nome da entidade no certificado SSL emitido para o servidor para o nome DNS mostrado no console do RDS.
Se a instância do RDS SQL foi iniciada em uma VPC, o certificado SSL do servidor infelizmente nunca passará na validação, já que seu assunto (CN) é um endereço IP diferente do IP público atribuído à instância. TrustServerCertificate=true
é a única maneira de se conectar com SSL nesse caso; confidencialidade (criptografia) é fornecida, mas a autenticação do servidor não é.
Se a instância do RDS SQL foi lançada na plataforma EC2-Classic (ou seja, não em um VPC), o certificado SSL do servidor tem como assunto um nome DNS do formulário ec2-NNN-NNN-NNN-NNN.RRRRR.amazonaws.com
(onde NNN-NNN-NNN -NNN é o endereço IP público da instância e RRRRR depende da região. Se você usar esse nome DNS no Management Studio, ele deve se conectar sem erros.
Descobri o nome DNS ec2 -... usando o nslookup no nome DNS mostrado no console do RDS, ou seja, <name>.<region>.rds.amazon.com
. O certificado apresentado pelo servidor pode ser examinado usando o Network Monitor.
Consulte também "Uso do SSL com uma instância de banco de dados do SQL Server", no link
Tags ssl amazon-rds sql-server-2012