Evento
Campionato do Mundo de Power BI DataViz
Feb 14, 4 PM - Mar 31, 4 PM
Con 4 posibilidades de entrar, poderías gañar un paquete de conferencias e facelo ao Live Grand Finale en Las Vegas
Máis informaciónEste explorador xa non é compatible.
Actualice a Microsoft Edge para dispoñer das funcionalidades máis recentes, as actualizacións de seguranza e a asistencia técnica.
Por Rick Anderson
ASP.NET Core usa HTTPS de forma predeterminada. HTTPS se basa en certificados para la confianza, la identidad y el cifrado.
En este documento se explica cómo ejecutar imágenes de contenedor pregeneradas con HTTPS mediante la interfaz de línea de comandos (CLI) de .NET. Para obtener instrucciones sobre cómo ejecutar Docker en desarrollo con Visual Studio, consulte Desarrollo de aplicaciones de ASP.NET Core con Docker a través de HTTPS.
En este ejemplo se necesita la versión Docker 17.06 o posterior del cliente Docker.
El SDK de .NET actual.
Se requiere un certificado de una entidad de certificación para el hospedaje de producción para un dominio. Let's Encrypt es una entidad de certificación que ofrece certificados gratuitos.
Este documento utiliza certificados de desarrollo autofirmados para alojar imágenes preconstruidas en localhost
. Las instrucciones son similares al uso de certificados de producción. El certificado generado por dotnet dev-certs
se usa solo con localhost
y no debe usarse en un entorno como Kubernetes. Para admitir HTTPS en un clúster de Kubernetes, use las herramientas proporcionadas por Administración de certificados TLS en un clúster para configurar TLS dentro de pods.
Use dotnet dev-certs
para crear certificados autofirmados para desarrollo y pruebas.
Para los certificados de producción:
dotnet dev-certs
no es necesaria.Las instrucciones contenidas en el siguiente volumen de la sección montan certificados en contenedores mediante la opción de línea de comandos -v
de Docker. Puede agregar certificados a imágenes de contenedor con un comando COPY
en un Dockerfile, pero no se recomienda. No se recomienda copiar certificados en una imagen por los siguientes motivos:
Siga las instrucciones a continuación para la configuración del sistema operativo.
Genere un certificado y configure la máquina local:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p <CREDENTIAL_PLACEHOLDER>
dotnet dev-certs https --trust
En los comandos anteriores, reemplace <CREDENTIAL_PLACEHOLDER>
por una contraseña.
Ejecute la imagen de contenedor con ASP.NET Core configurado para HTTPS en un shell de comandos:
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:/https/ mcr.microsoft.com/dotnet/samples:aspnetapp
En el código anterior, reemplace <CREDENTIAL_PLACEHOLDER>
por la contraseña. La contraseña debe coincidir con la contraseña usada para el certificado.
Al usar PowerShell, reemplace %USERPROFILE%
por $env:USERPROFILE
.
Nota: El certificado en este caso debe ser un archivo .pfx
. No se admite el uso de un archivo .crt
o .key
con o sin la contraseña con el contenedor de ejemplo. Por ejemplo, al especificar un archivo .crt
, el contenedor puede devolver mensajes de error como 'El modo de servidor SSL debe usar un certificado con la clave privada asociada'. Al usar WSL, valide la ruta de acceso de montaje para asegurarse de que el certificado se carga correctamente.
Genere el certificado y configure la máquina local:
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p <CREDENTIAL_PLACEHOLDER>
dotnet dev-certs https --trust
En Linux, dotnet dev-certs https --trust
requiere el SDK de .NET 9 o una versión posterior. Para Linux en el SDK de .NET 8.0.401 y versiones anteriores, consulta la documentación de tu distribución de Linux para confiar en un certificado.
En los comandos anteriores, reemplace <CREDENTIAL_PLACEHOLDER>
por una contraseña.
Ejecute la imagen de contenedor con ASP.NET Core configurado para HTTPS:
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v ${HOME}/.aspnet/https:/https/ mcr.microsoft.com/dotnet/samples:aspnetapp
En el código anterior, reemplace <CREDENTIAL_PLACEHOLDER>
por la contraseña. La contraseña debe coincidir con la contraseña usada para el certificado.
Genere el certificado y configure la máquina local:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p <CREDENTIAL_PLACEHOLDER>
dotnet dev-certs https --trust
En los comandos anteriores, reemplace <CREDENTIAL_PLACEHOLDER>
por una contraseña. Al usar PowerShell, reemplace %USERPROFILE%
por $env:USERPROFILE
.
Ejecute la imagen de contenedor con ASP.NET Core configurado para HTTPS:
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=c:\https\aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:C:\https\ --user ContainerAdministrator mcr.microsoft.com/dotnet/samples:aspnetapp
NOTE:<CREDENTIAL_PLACEHOLDER>
es un marcador de posición para la contraseña predeterminada de certificados Kestrel.
La contraseña debe coincidir con la contraseña usada para el certificado. Al usar PowerShell, reemplace %USERPROFILE%
por $env:USERPROFILE
.
Consulte Desarrollo de aplicaciones de ASP.NET Core con Docker a través de HTTPS para obtener información y ejemplos sobre cómo desarrollar aplicaciones ASP.NET Core con HTTPS en contenedores de Docker.
dotnet dev-certs
ASP.NET Core usa HTTPS de forma predeterminada. HTTPS se basa en certificados para la confianza, la identidad y el cifrado.
En este documento se explica cómo ejecutar imágenes de contenedor pregeneradas con HTTPS mediante la interfaz de línea de comandos (CLI) de .NET. Para obtener instrucciones sobre cómo ejecutar Docker en desarrollo con Visual Studio, consulte Desarrollo de aplicaciones de ASP.NET Core con Docker a través de HTTPS.
En este ejemplo se necesita la versión Docker 17.06 o posterior del cliente Docker.
El SDK de .NET actual.
Se requiere un certificado de una entidad de certificación para el hospedaje de producción para un dominio. Let's Encrypt es una entidad de certificación que ofrece certificados gratuitos.
Este documento utiliza certificados de desarrollo autofirmados para alojar imágenes preconstruidas en localhost
. Las instrucciones son similares al uso de certificados de producción. El certificado generado por dotnet dev-certs
se usa solo con localhost
y no debe usarse en un entorno como Kubernetes. Para admitir HTTPS en un clúster de Kubernetes, use las herramientas proporcionadas por Administración de certificados TLS en un clúster para configurar TLS dentro de pods.
Use dotnet dev-certs
para crear certificados autofirmados para desarrollo y pruebas.
Para los certificados de producción:
dotnet dev-certs
no es necesaria.Las instrucciones contenidas en el siguiente volumen de la sección montan certificados en contenedores mediante la opción de línea de comandos -v
de Docker. Puede agregar certificados a imágenes de contenedor con un comando COPY
en un Dockerfile, pero no se recomienda. No se recomienda copiar certificados en una imagen por los siguientes motivos:
Siga las instrucciones a continuación para la configuración del sistema operativo.
Genere un certificado y configure la máquina local:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p <CREDENTIAL_PLACEHOLDER>
dotnet dev-certs https --trust
En los comandos anteriores, reemplace <CREDENTIAL_PLACEHOLDER>
por una contraseña.
Ejecute la imagen de contenedor con ASP.NET Core configurado para HTTPS en un shell de comandos:
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:/https/ mcr.microsoft.com/dotnet/samples:aspnetapp
En el código anterior, reemplace <CREDENTIAL_PLACEHOLDER>
por la contraseña. La contraseña debe coincidir con la contraseña usada para el certificado.
Al usar PowerShell, reemplace %USERPROFILE%
por $env:USERPROFILE
.
Nota: El certificado en este caso debe ser un archivo .pfx
. No se admite el uso de un archivo .crt
o .key
con o sin la contraseña con el contenedor de ejemplo. Por ejemplo, al especificar un archivo .crt
, el contenedor puede devolver mensajes de error como 'El modo de servidor SSL debe usar un certificado con la clave privada asociada'. Al usar WSL, valide la ruta de acceso de montaje para asegurarse de que el certificado se carga correctamente.
Genere el certificado y configure la máquina local:
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p <CREDENTIAL_PLACEHOLDER>
dotnet dev-certs https --trust
dotnet dev-certs https --trust
solo se admite en macOS y Windows. Debe confiar los certificados en Linux de la manera que admite su distribución. Es probable que tenga que confiar su certificado en el explorador.
En los comandos anteriores, reemplace <CREDENTIAL_PLACEHOLDER>
por una contraseña.
Ejecute la imagen de contenedor con ASP.NET Core configurado para HTTPS:
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v ${HOME}/.aspnet/https:/https/ mcr.microsoft.com/dotnet/samples:aspnetapp
En el código anterior, reemplace <CREDENTIAL_PLACEHOLDER>
por la contraseña. La contraseña debe coincidir con la contraseña usada para el certificado.
Genere el certificado y configure la máquina local:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p <CREDENTIAL_PLACEHOLDER>
dotnet dev-certs https --trust
En los comandos anteriores, reemplace <CREDENTIAL_PLACEHOLDER>
por una contraseña. Al usar PowerShell, reemplace %USERPROFILE%
por $env:USERPROFILE
.
Ejecute la imagen de contenedor con ASP.NET Core configurado para HTTPS:
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=8001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=c:\https\aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:C:\https\ --user ContainerAdministrator mcr.microsoft.com/dotnet/samples:aspnetapp
NOTE:<CREDENTIAL_PLACEHOLDER>
es un marcador de posición para la contraseña predeterminada de certificados Kestrel.
La contraseña debe coincidir con la contraseña usada para el certificado. Al usar PowerShell, reemplace %USERPROFILE%
por $env:USERPROFILE
.
Consulte Desarrollo de aplicaciones de ASP.NET Core con Docker a través de HTTPS para obtener información y ejemplos sobre cómo desarrollar aplicaciones ASP.NET Core con HTTPS en contenedores de Docker.
dotnet dev-certs
Comentarios de ASP.NET Core
ASP.NET Core é un proxecto de código aberto. Selecciona unha ligazón para ofrecer comentarios:
Evento
Campionato do Mundo de Power BI DataViz
Feb 14, 4 PM - Mar 31, 4 PM
Con 4 posibilidades de entrar, poderías gañar un paquete de conferencias e facelo ao Live Grand Finale en Las Vegas
Máis información