Belldandy
Un blog? Que es esto, 2004? Mi nombre es Andrea, y hace muchos años que trabajo en sistemas.
Logo

Configurar HTTPS para una API en .NET

Publicado el 13 nov 2024, 09:31:29 —  Categorias: .NET

Cuantas veces nos paso que necesitamos correr algo bajo SSL para desarrollo local, y siempre es un dolor de... cabeza. Por suerte la tecnologia avanza, y ahora es "relativamente" facil hacerlo, al menos si es para Windows, .NET Core y estas usando Kestrel.

  • Primero, abrir un Powershell como administrador y correr este comando. Reemplazar my.domain.local por el dominio que querramos usar.
New-SelfSignedCertificate -DnsName "my.domain.local" -CertStoreLocation "Cert:\LocalMachine\My"

Esto va a crear un certificado en tu compu, instalado en el store LocalMachine\My

  • Abrir Manage Computer Certificates (no tengo ni idea como se llama en español, pero debe ser algo con Certificados 😁)
  • Exportar ese certificado haciendo click derecho -> Export
    • Exportar la clave privada
    • Exportarlo como PFX
    • Setear algun password

Guardar ese archivo en algun directorio (como C:\projects o algo asi), con un nombre que nos acordemos, como domain_local.pfx.

Trusted Root Certificate

Ahora tenemos que decirle que nuestra compu "confia" en ese certificado, y para eso lo vamos a instalar como un Trusted Root Certificate.

  • Hacer doble click en el archivo pfx
  • En el Certificate Import Wizard
    • Elegir Local Machine -> Next
    • Buscar el archivo .pfx con Browse -> Next
    • Ingresar el password, marcar que la key sea exportable -> Next
    • Hacer click en Browse para elegir el destino, elegir Trusted Root Certification Authorities, OK -> Next
    • Listo!

Kestrel configuration

Finalmente, cambiamos nuestra configuracion de Kestrel (el web server de ASP.NET Core), para decirle que vamos a usar un certificado:

Abrir appSettings.json y agregar lo siguiente:

"Kestrel": {
  "Endpoints": {
    "Https": {
      "Url": "https://my.domain.local:5001",
      "Certificate": {
        "Path": "C:\\path\\domain_local.pfx",
        "Password": "tu_password"
      }
    }
  }
}

Como ultimo paso, agregarmos my.domain.local al archivo hosts (si todavia no lo agregaste), corremos nuestra API, y listo, ya tenemos nuestra API bajo SSL 😊

Volver

Comentarios Recientes

  • IT Telkom

    4/9/2025

    ¿Cómo simplificó .NET Core y Kestrel la implementación de SSL en entornos de desarrollo local para Windows?
    Regard IT Telkom

¡Comentario agregado con éxito!
Angel

Deja un comentario

(no se publica)