Como Corrigir o Erro NET::ERR_CERT_INVALID no ASP.NET Core

Como Corrigir o Erro NET::ERR_CERT_INVALID no ASP.NET Core

Como Corrigir o Erro NET::ERR_CERT_INVALID no ASP.NET Core

O erro NET::ERR_CERT_INVALID indica que o certificado SSL usado pela sua aplicação localhost não é válido. Isso geralmente acontece durante o desenvolvimento local, pois o certificado autoassinado que o ASP.NET Core usa por padrão não é reconhecido como confiável pelo navegador.

1. Confirme a Confiabilidade do Certificado SSL

Você pode adicionar o certificado SSL autoassinado do ASP.NET Core à lista de certificados confiáveis no seu sistema operacional.

Para Windows:

  1. Execute o comando dotnet dev-certs https --trust no terminal. Isso vai instalar e confiar no certificado de desenvolvimento.
  2. Quando solicitado, siga as instruções para adicionar o certificado à sua lista de certificados confiáveis.

Para macOS:

  1. Execute o comando dotnet dev-certs https --trust.
  2. Quando solicitado, insira suas credenciais administrativas para confiar no certificado.

Para Linux:

  1. Execute o comando dotnet dev-certs https.
  2. Dependendo da distribuição, siga as instruções específicas para adicionar o certificado ao armazenamento de certificados confiáveis. Para Ubuntu, por exemplo:
    dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p password
    sudo cp ${HOME}/.aspnet/https/aspnetapp.pfx /usr/local/share/ca-certificates/aspnetapp.crt
    sudo update-ca-certificates

2. Configurar o Certificado SSL no appsettings.json

Você pode configurar o aplicativo ASP.NET Core para usar um certificado SSL específico. Adicione ou edite a seção Kestrel no seu appsettings.json para apontar para um certificado específico:

{
  "Kestrel": {
    "EndPoints": {
      "Https": {
        "Url": "https://localhost:5001",
        "Certificate": {
          "Path": "path-to-your-certificate.pfx",
          "Password": "your-certificate-password"
        }
      }
    }
  }
}

3. Desabilitar HTTPS (apenas para desenvolvimento)

Desabilitar HTTPS pode ser uma solução rápida para desenvolvimento local, mas não deve ser usado em produção.

No arquivo launchSettings.json, altere launchBrowser e applicationUrl para não usar HTTPS:

{
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "http://localhost:5000"
    },
    "YourProjectName": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

4. Usar HTTP em vez de HTTPS (apenas para desenvolvimento)

No seu arquivo Program.cs, configure o Kestrel para usar HTTP em vez de HTTPS:

var builder = WebApplication.CreateBuilder(args);

builder.WebHost.ConfigureKestrel(serverOptions =>
{
    serverOptions.Listen(IPAddress.Loopback, 5000); // HTTP
    // serverOptions.Listen(IPAddress.Loopback, 5001, listenOptions => // HTTPS
    // {
    //     listenOptions.UseHttps();
    // });
});

var app = builder.Build();

app.UseHttpsRedirection(); // Opcionalmente, remova esta linha

app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapControllers();

app.Run();

Essas etapas devem ajudar a resolver o problema com o certificado SSL inválido durante o desenvolvimento local. Para produção, é sempre recomendável usar um certificado SSL válido emitido por uma autoridade certificadora confiável.

Isto foi útil?

1 / 1