dotnet dev-certs

Este artículo se aplica a: ✔️ SDK de .NET Core 3.1 y versiones posteriores

Nombre

dotnet dev-certs: Genera un certificado autofirmado para habilitar el uso de HTTPS en el desarrollo.

Sinopsis

dotnet dev-certs https 
  [-c|--check] [--clean] [-ep|--export-path <PATH>]
  [--format] [-i|--import] [-np|--no-password]
  [-p|--password] [-q|--quiet] [-t|--trust]
  [-v|--verbose] [--version]

dotnet dev-certs https -h|--help

Descripción

El comando dotnet dev-certs administra un certificado autofirmado para habilitar el uso de HTTPS en el desarrollo de aplicaciones web locales. Sus funciones principales son:

  • La generación de un certificado para su uso con puntos de conexión HTTPS durante el desarrollo.
  • Asegurar la confianza en el certificado generado en el equipo local.
  • La eliminación del certificado generado en el equipo local.
  • La exportación de un certificado en varios formatos para que otras herramientas puedan usarlo.
  • La importación de un certificado existente, generado por la herramienta, en el equipo local.

Comandos

  • https

    dotnet dev-certs solo tiene un comando: https. El comando dotnet dev-certs https sin opciones comprueba si hay un certificado de desarrollo en el almacén de certificados del usuario actual en la máquina. Si el comando encuentra un certificado de desarrollo, muestra un mensaje similar al de este ejemplo:

    A valid HTTPS certificate is already present.
    

    Si el comando no encuentra un certificado de desarrollo, crea uno en el almacén de certificados del usuario actual, el almacén denominado My en la ubicación CurrentUser. La ubicación física del certificado es un detalle de implementación del runtime de .NET que podría cambiar en cualquier momento. En macOS, en .NET 7.0, el certificado se almacena en la cadena de claves de usuario y como un archivo PFX: ~/.aspnet/https-aspnetcore-localhost-<Thumbprint[0..5]>.pfx.

    Después de crear un certificado, el comando muestra un mensaje similar al de este ejemplo:

    The HTTPS developer certificate was generated successfully.
    

    De manera predeterminada, el certificado recién creado no es de confianza. Para asegurar la confianza en el certificado, use la opción --trust.

    Para crear un archivo que puede usar con otras herramientas, use la opción --export-path.

Opciones

  • -c|--check

    Comprueba la existencia del certificado de desarrollo, pero no realiza ninguna acción. Use esta opción con la opción --trust para comprobar que el certificado es válido y también de confianza.

  • --clean

    Quita todos los certificados de desarrollo HTTPS del almacén de certificados mediante la API del almacén de certificados de .NET. No quita ningún archivo físico que se haya creado mediante la opción --export-path. En macOS, en .NET 7.0, el comando dotnet dev-certs crea el certificado en una ruta de acceso en el disco y la operación limpia quita ese archivo de certificado.

    Si hay al menos un certificado en el almacén de certificados, el comando muestra un mensaje similar al de este ejemplo:

    Cleaning HTTPS development certificates
    from the machine.
    A prompt might get displayed to confirm
    the removal of some of the certificates.
    
    HTTPS development certificates
    successfully removed from the machine.
    

  • -ep|--export-path <PATH>

    Exporta el certificado a un archivo para que otras herramientas puedan usarlo. Especifique la ruta de acceso completa al archivo de certificado que se ha exportado, incluyendo el nombre del archivo. El tipo de archivos de certificado que se crean depende de las opciones que se usen con --export-path:

    Opciones ¿Qué se exporta?
    --export-path La parte pública del certificado como un archivo PFX.
    --export-path --format PEM La parte pública del certificado en formato PEM. No se crea ningún archivo .key por separado.
    --export-path --password Las partes públicas y privadas del certificado como un archivo PFX.
    --export-path --password --format PEM Las partes públicas y privadas del certificado como un par de archivos en formato PEM. El archivo de clave tiene la extensión .key y está protegido por la contraseña especificada.
    --export-path --no-password --format PEM Las partes públicas y privadas del certificado como un par de archivos en formato PEM. El archivo de clave tiene la extensión .key y se exporta en texto sin formato. La opción --no-password solo está pensada para su uso en pruebas internas.
    • --format

    Cuando se usa con --export-path, especifica el formato del archivo de certificado que se ha exportado. Los valores válidos son PFX y PEM, sin distinguir mayúsculas de minúsculas. PFX es el valor predeterminado.

    El formato de archivo es independiente de la extensión de nombre de archivo. Por ejemplo, si especifica --format pfx y --export-path ./cert.pem obtendrá un archivo denominado cert.pem en formato PFX.

    Para obtener información sobre el efecto de esta opción cuando se usa con --password, --no-password o con ninguna de las dos opciones, consulte la parte de --export-path que ha aparecido en este artículo.

  • -i|--import <PATH>

    Importa el certificado de desarrollo HTTPS proporcionado en el equipo local. Esto requiere que también especifique la opción --clean, que borra los certificados de desarrollador HTTPS existentes.

    PATH especifica una ruta de acceso a un archivo de certificado PFX. Proporcione la contraseña con la opción --password.

  • -np|--no-password

    No utiliza una contraseña para la clave al exportar un certificado a archivos de formato PEM. El archivo de clave se exporta en texto sin formato. Esta opción no es aplicable a los archivos PFX y solo está pensada para su uso en pruebas internas.

  • -p|--password

    Especifica la contraseña que se va a usar:

    • Al exportar el certificado de desarrollo a un archivo PFX o PEM.
    • Al importar un archivo PFX.

    Al exportar con --format PEM, las partes públicas y privadas del certificado se exportan como un par de archivos en formato PEM. El archivo de clave tiene la extensión .key y está protegido por la contraseña especificada. Además del nombre de archivo especificado para la opción --export-path, el comando crea otro archivo en el mismo directorio con el mismo nombre, pero con una extensión .key. Por ejemplo, el siguiente comando generará un archivo denominado localhost.pem y un archivo denominado localhost.key en el directorio /home/user:

    dotnet dev-certs https --format pem -ep /home/user/localhost.pem -p $CREDENTIAL_PLACEHOLDER$
    

    En el ejemplo, $CREDENTIAL_PLACEHOLDER$ representa una contraseña.

  • -q|--quiet

    Solo se muestran las advertencias y los errores.

  • -t|--trust

    Asegura la confianza en el certificado en el equipo local.

    Si no se especifica esta opción, el certificado se agrega al almacén de certificados, pero no a una lista de confianza.

    Cuando se combina con la opción --check, valida que el certificado es de confianza.

  • -v|--verbose

    Solo se muestra la información de depuración.

Ejemplos

  • Se comprueba la presencia de un certificado de desarrollo y, si no lo hay, se crea uno en el almacén de certificados predeterminado. Pero no asegura la confianza en el certificado.

    dotnet dev-certs https
    
  • Se eliminan los certificados de desarrollo que ya existan en el equipo local.

    dotnet dev-certs https --clean
    
  • Se importa un archivo PFX.

    dotnet dev-certs https --clean --import ./certificate.pfx -p $CREDENTIAL_PLACEHOLDER$
    

    En el ejemplo anterior, $CREDENTIAL_PLACEHOLDER$ representa una contraseña.

  • Se comprueba si hay un certificado de desarrollo de confianza en el equipo local.

    dotnet dev-certs https --check --trust
    
  • Se crea un certificado, se asegura su confianza y se exporta a un archivo PFX.

    dotnet dev-certs https -ep ./certificate.pfx -p $CREDENTIAL_PLACEHOLDER$ --trust
    
  • Se crea un certificado, se asegura su confianza y se exporta a un archivo PEM.

    dotnet dev-certs https -ep ./certificate.crt --trust --format PEM
    
  • Se crea un certificado, se asegura su confianza y se exporta a un archivo PEM, incluida la clave privada:

    dotnet dev-certs https -ep ./certificate.crt -p $CREDENTIAL_PLACEHOLDER$ --trust --format PEM
    

Consulte también