El navegador no está satisfecho con el cifrado utilizado para HTTP2 (supongo)
ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY
y equivalente en Chrome
solo para firefox
Me las arreglé para entrar about:config
y deshabilitar la verificación de cifrado débil, esto en realidad tiene un efecto
¿Existe una forma sencilla de deshabilitar completamente HTTP2 a través de un Kestrel IOptions<>
?
Pasos para reproducir el comportamiento:
2.2.105
y 3.0.0-preview3
desde https://dot.netdotnet new webapi -n foo
UseHsts
UseHttpsRedirection()
dotnet run --project foo.csproj
http
endpoint => funcionahttps
punto final => rechazadolo intenté :
dotnet dev-certs http --clean
dotnet dev-certs http --trust
.vs/
launchSettings.json
por cualquier otra cosaUseHttpsRedirection()
UseHsts()
Estoy bastante seguro de que todo lo que hice fue actualizar Vs2019, estaba funcionando hace 2 semanas en el mismo SDK (o la última información privilegiada de win10 - actualización de anillo rápido)
>dotnet --version
3.0.100-preview3-010431
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.0.0-preview3-19153-02" />
</ItemGroup>
</Project>
¿En qué sistema operativo está el servidor? Hemos visto esto en 2012 / Win8.
Puede optar por no usar HTTP / 2 usando estas opciones:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2#listenoptionsprotocols
P.ej:
{
"Kestrel": {
"EndPointDefaults": {
"Protocols": "Http1"
}
}
}
Consulte los requisitos de la plataforma aquí:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2#http2 -support
Windows 10: información privilegiada de anillo rápido
Vista previa de vs2019
netcoreapp3.0.0 vista previa
(montón de cosas de borde ^^)
estaba funcionando bien la semana pasada. Fue golpeado por un golpe de información privilegiada + la última vista previa de vs2019 desde
También intenté agregar 2 claves de registro para deshabilitar HTTP2 para el servidor Win2016.
no tuvo ningún efecto en ningún navegador
Esas claves de registro son solo para IIS / Http.Sys. Me pregunto si Insiders tiene una regresión. @shirhatti
¿Es una forma de hacerle saber al desarrollador que se está ejecutando en un servidor que puede terminar así?
Por ejemplo, un cifrado de listado dotnet tool
que se puede usar en la máquina / servidor actual con, por ejemplo, colores para indicar un cifrado débil potencial y así sucesivamente.
O un booleano para hacer que el servidor sea agresivo y sin fallas si el cifrado enumerado es demasiado débil en el momento del inicio.
Esto requeriría conocer la lista de los "aceptables" y realmente no tengo idea de si existe tal lista y si es posible en absoluto.
me tomó mucho tiempo darme cuenta de dónde venía
¿Puede dar el número de compilación de Windows específico?
Solo agregaríamos este tipo de herramientas si ya no pudiéramos decir que funcionó en todas las compilaciones de rtm win10.
A partir de la actualización de 1803, IIS le permite controlar Http.Sys por enlace. Ya no necesita deshabilitar HTTP / 2 para todo el servidor.
Dicho esto, la clave de registro global aún debería funcionar. ¿Puedes compartir tu número de compilación de Windows y lo investigaré?
@shirhatti están usando Kestrel.
Ups 🤦♂️. Ignora mi comentario anterior.
también realmente no quiero deshabilitar Http2 si se puede arreglar;)
@Tratcher
esto ayuda?
> systeminfo
OS Version: 10.0.18362 N/A Build 18362
OS Configuration: Standalone Workstation
> Get-TlsCipherSuite
KeyType : 0
Certificate :
MaximumExchangeLength : 0
MinimumExchangeLength : 0
Exchange :
HashLength : 0
Hash :
CipherBlockLength : 16
CipherLength : 256
BaseCipherSuite : 4866
CipherSuite : 4866
Cipher : AES
Name : TLS_AES_256_GCM_SHA384
Protocols : {772}
KeyType : 0
Certificate :
MaximumExchangeLength : 0
MinimumExchangeLength : 0
Exchange :
HashLength : 0
Hash :
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 4865
CipherSuite : 4865
Cipher : AES
Name : TLS_AES_128_GCM_SHA256
Protocols : {772}
KeyType : 0
Certificate :
MaximumExchangeLength : 0
MinimumExchangeLength : 0
Exchange :
HashLength : 0
Hash :
CipherBlockLength : 0
CipherLength : 0
BaseCipherSuite : 0
CipherSuite : 0
Cipher :
Name : TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
Protocols : {}
KeyType : 0
Certificate : ECDSA
MaximumExchangeLength : 65536
MinimumExchangeLength : 0
Exchange : ECDH
HashLength : 0
Hash :
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 49195
CipherSuite : 49195
Cipher : AES
Name : TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
Protocols : {771, 65277}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 65536
MinimumExchangeLength : 0
Exchange : ECDH
HashLength : 0
Hash :
CipherBlockLength : 16
CipherLength : 256
BaseCipherSuite : 49200
CipherSuite : 49200
Cipher : AES
Name : TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
Protocols : {771, 65277}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 65536
MinimumExchangeLength : 0
Exchange : ECDH
HashLength : 0
Hash :
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 49199
CipherSuite : 49199
Cipher : AES
Name : TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
Protocols : {771, 65277}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 1024
MinimumExchangeLength : 1024
Exchange : DH
HashLength : 0
Hash :
CipherBlockLength : 16
CipherLength : 256
BaseCipherSuite : 159
CipherSuite : 159
Cipher : AES
Name : TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
Protocols : {771, 65277}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 1024
MinimumExchangeLength : 1024
Exchange : DH
HashLength : 0
Hash :
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 158
CipherSuite : 158
Cipher : AES
Name : TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
Protocols : {771, 65277}
KeyType : 0
Certificate :
MaximumExchangeLength : 0
MinimumExchangeLength : 0
Exchange :
HashLength : 0
Hash :
CipherBlockLength : 0
CipherLength : 0
BaseCipherSuite : 0
CipherSuite : 0
Cipher :
Name : TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
Protocols : {}
KeyType : 0
Certificate : ECDSA
MaximumExchangeLength : 65536
MinimumExchangeLength : 0
Exchange : ECDH
HashLength : 256
Hash : SHA256
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 49187
CipherSuite : 49187
Cipher : AES
Name : TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
Protocols : {771, 65277}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 65536
MinimumExchangeLength : 0
Exchange : ECDH
HashLength : 384
Hash : SHA384
CipherBlockLength : 16
CipherLength : 256
BaseCipherSuite : 49192
CipherSuite : 49192
Cipher : AES
Name : TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
Protocols : {771, 65277}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 65536
MinimumExchangeLength : 0
Exchange : ECDH
HashLength : 256
Hash : SHA256
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 49191
CipherSuite : 49191
Cipher : AES
Name : TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
Protocols : {771, 65277}
KeyType : 0
Certificate : ECDSA
MaximumExchangeLength : 65536
MinimumExchangeLength : 0
Exchange : ECDH
HashLength : 160
Hash : SHA1
CipherBlockLength : 16
CipherLength : 256
BaseCipherSuite : 49162
CipherSuite : 49162
Cipher : AES
Name : TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
Protocols : {769, 770, 771, 65279...}
KeyType : 0
Certificate : ECDSA
MaximumExchangeLength : 65536
MinimumExchangeLength : 0
Exchange : ECDH
HashLength : 160
Hash : SHA1
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 49161
CipherSuite : 49161
Cipher : AES
Name : TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
Protocols : {769, 770, 771, 65279...}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 65536
MinimumExchangeLength : 0
Exchange : ECDH
HashLength : 160
Hash : SHA1
CipherBlockLength : 16
CipherLength : 256
BaseCipherSuite : 49172
CipherSuite : 49172
Cipher : AES
Name : TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
Protocols : {769, 770, 771, 65279...}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 65536
MinimumExchangeLength : 0
Exchange : ECDH
HashLength : 160
Hash : SHA1
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 49171
CipherSuite : 49171
Cipher : AES
Name : TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
Protocols : {769, 770, 771, 65279...}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 16384
MinimumExchangeLength : 512
Exchange : RSA
HashLength : 0
Hash :
CipherBlockLength : 16
CipherLength : 256
BaseCipherSuite : 157
CipherSuite : 157
Cipher : AES
Name : TLS_RSA_WITH_AES_256_GCM_SHA384
Protocols : {771, 65277}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 16384
MinimumExchangeLength : 512
Exchange : RSA
HashLength : 0
Hash :
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 156
CipherSuite : 156
Cipher : AES
Name : TLS_RSA_WITH_AES_128_GCM_SHA256
Protocols : {771, 65277}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 16384
MinimumExchangeLength : 512
Exchange : RSA
HashLength : 256
Hash : SHA256
CipherBlockLength : 16
CipherLength : 256
BaseCipherSuite : 61
CipherSuite : 61
Cipher : AES
Name : TLS_RSA_WITH_AES_256_CBC_SHA256
Protocols : {771, 65277}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 16384
MinimumExchangeLength : 512
Exchange : RSA
HashLength : 256
Hash : SHA256
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 60
CipherSuite : 60
Cipher : AES
Name : TLS_RSA_WITH_AES_128_CBC_SHA256
Protocols : {771, 65277}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 16384
MinimumExchangeLength : 512
Exchange : RSA
HashLength : 160
Hash : SHA1
CipherBlockLength : 16
CipherLength : 256
BaseCipherSuite : 53
CipherSuite : 53
Cipher : AES
Name : TLS_RSA_WITH_AES_256_CBC_SHA
Protocols : {769, 770, 771, 65279...}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 16384
MinimumExchangeLength : 512
Exchange : RSA
HashLength : 160
Hash : SHA1
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 47
CipherSuite : 47
Cipher : AES
Name : TLS_RSA_WITH_AES_128_CBC_SHA
Protocols : {769, 770, 771, 65279...}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 16384
MinimumExchangeLength : 512
Exchange : RSA
HashLength : 160
Hash : SHA1
CipherBlockLength : 8
CipherLength : 168
BaseCipherSuite : 10
CipherSuite : 10
Cipher : 3DES
Name : TLS_RSA_WITH_3DES_EDE_CBC_SHA
Protocols : {769, 770, 771, 768...}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 16384
MinimumExchangeLength : 512
Exchange : RSA
HashLength : 256
Hash : SHA256
CipherBlockLength : 1
CipherLength : 0
BaseCipherSuite : 59
CipherSuite : 59
Cipher :
Name : TLS_RSA_WITH_NULL_SHA256
Protocols : {771, 65277}
KeyType : 0
Certificate : RSA
MaximumExchangeLength : 16384
MinimumExchangeLength : 512
Exchange : RSA
HashLength : 160
Hash : SHA1
CipherBlockLength : 1
CipherLength : 0
BaseCipherSuite : 2
CipherSuite : 2
Cipher :
Name : TLS_RSA_WITH_NULL_SHA
Protocols : {769, 770, 771, 768...}
KeyType : 0
Certificate :
MaximumExchangeLength : 0
MinimumExchangeLength : 0
Exchange :
HashLength : 0
Hash :
CipherBlockLength : 0
CipherLength : 0
BaseCipherSuite : 0
CipherSuite : 0
Cipher :
Name : TLS_PSK_WITH_AES_256_GCM_SHA384
Protocols : {}
KeyType : 0
Certificate :
MaximumExchangeLength : 256
MinimumExchangeLength : 0
Exchange : PSK
HashLength : 0
Hash :
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 168
CipherSuite : 168
Cipher : AES
Name : TLS_PSK_WITH_AES_128_GCM_SHA256
Protocols : {771, 65277}
KeyType : 0
Certificate :
MaximumExchangeLength : 256
MinimumExchangeLength : 0
Exchange : PSK
HashLength : 384
Hash : SHA384
CipherBlockLength : 16
CipherLength : 256
BaseCipherSuite : 175
CipherSuite : 175
Cipher : AES
Name : TLS_PSK_WITH_AES_256_CBC_SHA384
Protocols : {771, 65277}
KeyType : 0
Certificate :
MaximumExchangeLength : 256
MinimumExchangeLength : 0
Exchange : PSK
HashLength : 256
Hash : SHA256
CipherBlockLength : 16
CipherLength : 128
BaseCipherSuite : 174
CipherSuite : 174
Cipher : AES
Name : TLS_PSK_WITH_AES_128_CBC_SHA256
Protocols : {771, 65277}
KeyType : 0
Certificate :
MaximumExchangeLength : 256
MinimumExchangeLength : 0
Exchange : PSK
HashLength : 384
Hash : SHA384
CipherBlockLength : 1
CipherLength : 0
BaseCipherSuite : 177
CipherSuite : 177
Cipher :
Name : TLS_PSK_WITH_NULL_SHA384
Protocols : {771, 65277}
KeyType : 0
Certificate :
MaximumExchangeLength : 256
MinimumExchangeLength : 0
Exchange : PSK
HashLength : 256
Hash : SHA256
CipherBlockLength : 1
CipherLength : 0
BaseCipherSuite : 176
CipherSuite : 176
Cipher :
Name : TLS_PSK_WITH_NULL_SHA256
Protocols : {771, 65277}
@tebeco ¿Puede proporcionarnos un rastreo de wirehark para que podamos ver exactamente lo que se está negociando? ¡Gracias!
cc @anurse
¿Qué filtro usaría para extraer lo que está buscando? Estoy bastante seguro de que puedo filtrar datos que no quiero
También tengo una duda de que realmente veo algo:
info: Microsoft.AspNetCore.Server.Kestrel[20]
Connection id "xxxxxxxxxxxxxxxxxxx" request processing ended abnormally.
System.IO.IOException: The decryption operation failed, see inner exception. ---> System.ComponentModel.Win32Exception: An unknown error occurred while processing the certificate.
--- End of inner exception stack trace ---
at System.Net.Security.SslStreamInternal.ReadAsyncInternal[TReadAdapter](TReadAdapter adapter, Memory`1 buffer)
at Microsoft.AspNetCore.Server.Kestrel.Core.Adapter.Internal.AdaptedPipeline.ReadInputAsync(Stream stream)
at System.IO.Pipelines.PipeCompletion.ThrowLatchedException()
at System.IO.Pipelines.Pipe.GetReadResult(ReadResult& result)
at System.IO.Pipelines.Pipe.GetReadAsyncResult()
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequestsAsync[TContext](IHttpApplication`1 application)
Supongo que, por ahora, seguiré usando Firefox para hacer una captura, pero elijo malas opciones al instalar Wireshark (muchas preguntas sobre loopback / wifi / admin, etc.) y es posible que tenga opt_out de demasiadas opciones.
también intenté usar este filtro: tcp.port == 5043
(que se supone que es el puerto de Kestrel)
y no veo nada
También no lo hice sí desactivado H2, así que eso es normal:
(el valor doble redondeado es una ventaja)
@shirhatti
realmente me gustaría hacer una captura de Wireshark
Estoy usando una computadora portátil (entonces Wifi) y usando localhost para kestrel
en una computadora portátil que ahora tiene ~ 6-8 adaptador de red
¿Cuál es la mejor manera de tener una captura limpia y agradable?
también, ¿qué filtro de captura debo usar para filtrar lo que necesita?
Problema similar: https://github.com/aspnet/AspNetCore/issues/8409
Puedo reproducir esto en 18356.21 y # 8409 también lo informa en 18362.1.
Tenga en cuenta que funciona en IE y Edge, por lo que se trata de un conflicto entre lo que admite Windows y lo que admite Chrome.
@Tratcher
Bueno, Chrome y Firefox
eso es un poco desagradable
No es probable que el certificado [dev] en sí sea inseguro, sino que solo sea compatible con ciertos conjuntos de cifrado. es decir, no creo que funcione con cifrados EC. La negociación recurre a cifrados compatibles con cert y aparentemente no encuentra uno que cumpla con los requisitos de HTTP / 2.
Comentario de del otro hilo
Que puedo hacer para ayudar ?
@tebeco Creo que ya tenemos suficiente para continuar, gracias.
Llevando a la vista previa 5.
La solución, si puede, es usar Vs.net e IIS Express y depurar de esa manera porque el certificado de desarrollo de IIS Express funciona correctamente incluso en versiones internas de Windows. Resuelve el problema por ahora para aquellos que lo golpean.
Otro punto de datos: probamos con el certificado de IIS Express en Kestrel y también funcionó, veremos qué debe cambiar con el certificado de desarrollo de AspNetCore.
@Tratcher ¿Tienes pasos para hacerlo? Sería una buena solución por ahora. ¡Me alegro de que haya funcionado!
@anurse, ¿puedes pegar tu muestra de código?
Sí. Tenemos la intención de arreglar nuestro certificado de desarrollo para 3.0, pero como solución temporal, puede usar el certificado de desarrollo de IIS Express directamente de Kestrel.
Esto solo funciona en Windows (pero hasta ahora el problema solo se ha informado allí) y requiere que tenga IIS Express instalado y configurado (instalar VS es suficiente para esto). En realidad, no tiene que usar IIS Express para alojar su sitio , solo estamos tomando prestado su certificado de desarrollo :).
Primero debe encontrar su certificado IIS Express en el almacén de certificados de usuario y obtener la huella digital. El siguiente script de PowerShell hará el truco:
dir Cert:\CurrentUser\Root\ | Where { $_.FriendlyName -like "IIS Express*" } | Select Thumbprint
Una vez que tenga la huella digital, puede escribir un pequeño código en Program.cs
para sacar ese certificado de la tienda y usarlo para Kestrel.
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
// Add this section below
webBuilder.ConfigureKestrel(options =>
{
options.ConfigureHttpsDefaults(ssl =>
{
// Open the Current User's Trusted Root Certificate store
var store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
// Find the IIS Express Certificate
var cert = store.Certificates.Find(X509FindType.FindByThumbprint, "<<put the hex thumbprint value in here>>", validOnly: false);
ssl.ServerCertificate = cert.Cast<X509Certificate2>().First();
});
});
});
}
@anurse ¡Impresionante! ¡Gracias!
Necesitamos actualizar nuestro certificado de desarrollo. @javiercn ¿ es algo que puedes mirar? El IIS Express Dev Cert en Win 10 18356 funciona bien, pero el nuestro no. Todo lo que tenemos que hacer es asegurarnos de cumplir los mismos requisitos.
Esto es de alta prioridad para la versión preliminar 5, ya que el certificado de desarrollo está completamente roto en Windows 10 19H1.
cc @mkArtakMSFT
@anurse Habiendo leído el problema, pero debería ser factible. Tendremos que informar a @blowdart, pero si solo estamos creando la clave para una clave más moderna, debería estar bien. (De nuevo, no he leído el tema, pero imagino que es eso).
Ese es mi entendimiento. Como dije, sabemos que el certificado IIS Express lo está haciendo bien , solo tenemos que averiguar qué es diferente y aplicar ese cambio a nuestro certificado también :).
@shirhatti , ¿conoce a alguien que sepa específicamente qué cambio se realizó en el certificado IIS? Podría ayudar a ahorrar un poco de buceo en los detalles del certificado si supiéramos los cambios que se realizaron :)
He echado un vistazo a esto creando una máquina con Windows 10, actualizándola a la última versión de información privilegiada e instalando vs (para que IIS instale el certificado).
No he podido ver nada en el certificado. ¿Alguien puede exportar un "certificado de trabajo" y compartirlo conmigo para que pueda echarle un vistazo? Solo necesito la parte pública.
Aquí tienes los dos para que puedas comparar. También tenga en cuenta que el certificado ASP.NET Core está en la tienda personal del usuario actual y el certificado IIS Express está en la tienda personal de la máquina local si es importante.
@anurse He echado un vistazo a esto. Los certificados son principalmente idénticos (basados en los certificados proporcionados por @ JohnGalt1717) pero por un par de cosas:
Mi teoría de trabajo es que la suite TLS que se está resolviendo es diferente entre las dos. @Tratcher, ¿ puede obtener la suite negociada para ambos certificados? Por alguna razón, con nuestro certificado, es probable que TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 no esté siendo atacado. (Eso dice Eliptic Curve Diffie-Helman Ephemeral para intercambio de claves, RSA para autenticación, AES128 Galois Counter Mode para cifrado).
En base a esto, la solución probable es simplemente agregar Firma digital al uso de la clave. Dicho esto, creo que justifica mirar el conjunto predeterminado de conjuntos de cifrado utilizados por Kestrel e IIS y compararlos, ya que supongo que Kestrel se está degradando a algo inaceptable, por lo que cambiar nuestro certificado solo resolverá el problema con una curita. y no arreglarlo correctamente.
@anurse El siguiente fragmento de powershell creará un certificado https "compatible con aspnetcore" con la adición de la firma digital. He estado tratando de reproducir esto en las compilaciones internas de Win 10 y no he podido. ¿Puedes conseguir que alguien del equipo lo pruebe?
Más importante aún, creo que deberíamos revisar los conjuntos de cifrado que ofrecen IIS y Kestrel.
function TryCreateAspNetCoreCertUsingPowershell () {
$ekuOidCollection = [System.Security.Cryptography.OidCollection]::new();
$ekuOidCollection.Add([System.Security.Cryptography.Oid]::new("1.3.6.1.5.5.7.3.1","Server Authentication"));
$sanBuilder = [System.Security.Cryptography.X509Certificates.SubjectAlternativeNameBuilder]::new();
$sanBuilder.AddDnsName("localhost");
$certificateExtensions = @(
# Subject Alternative Name
$sanBuilder.Build($true),
# ASP.NET Core OID
[System.Security.Cryptography.X509Certificates.X509Extension]::new(
"1.3.6.1.4.1.311.84.1.1",
[System.Text.Encoding]::ASCII.GetBytes("ASP.NET Core HTTPS development certificate"),
$false),
# KeyUsage
[System.Security.Cryptography.X509Certificates.X509KeyUsageExtension]::new(
[System.Security.Cryptography.X509Certificates.X509KeyUsageFlags]::KeyEncipherment -bor [System.Security.Cryptography.X509Certificates.X509KeyUsageFlags]::DigitalSignature,
$true),
# Enhanced key usage
[System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension]::new(
$ekuOidCollection,
$true),
# Basic constraints
[System.Security.Cryptography.X509Certificates.X509BasicConstraintsExtension]::new($false,$false,0,$true))
$parameters = @{
Subject = "localhost";
KeyAlgorithm = "RSA";
KeyLength = 2048;
CertStoreLocation = "Cert:\CurrentUser\My";
KeyExportPolicy = "Exportable";
NotBefore = Get-Date;
NotAfter = (Get-Date).AddYears(1);
HashAlgorithm = "SHA256";
Extension = $certificateExtensions;
SuppressOid = @("2.5.29.14");
FriendlyName = "ASP.NET Core HTTPS development certificate"
}
New-SelfSignedCertificate <strong i="11">@parameters</strong>
}
Si usó la compilación de información privilegiada de ayer, eso es 20H1, no 19H1. Deberá hacer el anillo de vista previa de lanzamiento o el anillo lento para obtener la versión con el problema. (¿Quizás esto sea un problema con el 19H1 ahora final?)
Estoy de acuerdo con agregar ese EKU.
Reprodé el problema en este momento, luego instalé el certificado actualizado de cambié y el problema ya no se repros con el
https://github.com/aspnet/AspNetCore/pull/9293/files PR está disponible para actualizar la KU.
PR se fusionó. Ciérrelo si siente que no hay nada más que abordar aquí
Acabo de actualizar a 20H1 ayer
No estoy seguro de qué vista previa 3.0.0-previewX
contendrá la combinación
¿Puedes iluminarme sobre eso? vista previa 4 o 5?
(Puedo probar una noche a la mañana, pero no quiero usarla después de la prueba rápida)
Esto será parte de preview5.
Si tu corres
dotnet dev-certs http --clean
El script de powershell arriba y luego
dotnet dev-certs http --trust
Debería desbloquearte.
Gracias a todos. Esto ahora está arreglado y haré un seguimiento con respecto a incluirlo en el Known issues
para la versión Preview5.
Hay un error tipográfico en https://github.com/aspnet/AspNetCore/issues/8952#issuecomment -482499042, pero cuando se corrigió, funcionó:
dotnet dev-certs https --clean
dotnet dev-certs https --trust
Acabo de instalar la vista previa 6 y esto aún sucede.
Chrome informa ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY
.
No he instalado ninguna vista previa antes, solo SDK 2.0 en adelante.
Versión SDK / Runtime: 3.0.100-preview6-012264
.
dotnet - salida de info
.NET Core SDK (que refleja cualquier archivo global.json):
Versión: 3.0.100-preview6-012264
Confirmar: be3f0c1a03
Entorno de ejecución:
Nombre del sistema operativo: Windows
Versión del SO: 10.0.18362
Plataforma del sistema operativo: Windows
RID: win10-x64
Ruta base: C: \ Archivos de programa \ dotnet \ sdk3.0.100-preview6-012264 \
Anfitrión (útil para soporte):
Versión: 3.0.0-preview6-27804-01
Comprometerse: fdf81c6faf
SDK de .NET Core instalados:
2.1.402 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.403 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.500 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.502 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.503 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.504 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.505 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.507 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.600 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.601 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.602 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.604 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.700 [C: \ Archivos de programa \ dotnet \ sdk]
2.1.800-preview-009696 [C: \ Archivos de programa \ dotnet \ sdk]
2.2.100 [C: \ Archivos de programa \ dotnet \ sdk]
2.2.102 [C: \ Archivos de programa \ dotnet \ sdk]
2.2.104 [C: \ Archivos de programa \ dotnet \ sdk]
2.2.202 [C: \ Archivos de programa \ dotnet \ sdk]
2.2.204 [C: \ Archivos de programa \ dotnet \ sdk]
2.2.300 [C: \ Archivos de programa \ dotnet \ sdk]
3.0.100-preview6-012264 [C: \ Archivos de programa \ dotnet \ sdk]
Tiempos de ejecución de .NET Core instalados:
Microsoft.AspNetCore.All 2.1.4 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.5 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.6 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.7 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.8 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.9 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.11 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.0 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.1 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.2 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.3 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.5 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.4 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.5 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.6 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.7 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.8 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.9 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.11 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.0 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.1 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.2 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.3 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.5 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.0.0-preview6.19307.2 [C: \ Archivos de programa \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.4 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.5 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.6 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.7 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.8 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.9 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.11 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.0 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.1 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.2 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.3 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.5 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 3.0.0-preview6-27804-01 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.0.0-preview6-27804-01 [C: \ Archivos de programa \ dotnet \ shared \ Microsoft.WindowsDesktop.App]
Podría estar relacionado con https://github.com/aspnet/AspNetCore/issues/11283 para mí.
@nphmuller
¿Intentó ejecutar los siguientes comandos con un entorno dotnet de preview6?
dotnet dev-certs https --clean
dotnet dev-certs https --trust
Es probable que tenga un certificado antiguo. Agregamos lógica para actualizar el certificado, pero no estoy seguro de si llegó a la vista previa6 o si estará disponible en la vista previa7.
@javiercn
Lo intenté, como solución, pero --clean
falla. Creé https://github.com/aspnet/AspNetCore/issues/11283 para este problema.
@nphmuller ¿Qué sistema operativo estás usando?
Puede abrir el administrador de certificados y limpiar los certificados usted mismo (entiendo que esto no es ideal)
En Windows (Win + R) -> mmc -> ingrese -> (Ctrl + M (agregar complemento) -> Certificados -> Mi cuenta de usuario -> Certificados -> Personal -> Certificados -> Encuentre los que tienen 'localhost '-> Elimina los que tienen ASP.NET Core HTTPS ...
.
Repita con los certificados en las autoridades de certificación raíz de confianza
Vuelva a ejecutar dotnet dev-certs https --trust
@javiercn
Ese trabajo. ¡Gracias!
Estoy en Win 10 1903 (18362.175) (También en la salida dotnet --info
, escribí en mi comentario inicial)
Supongo que, como escribió, la lógica de actualización no llegó a la versión preliminar 6, pero estará en la versión preliminar 7.
@javiercn @nphmuller Tuve el mismo problema, intenté eliminar los certificados manualmente y volver a crearlos usando dotnet dev-certs https --trust
. Eso funcionó, pero ahora aparece un error ERR_CERT_AUTHORITY_INVALID. Parece que Kestrel todavía está usando el certificado anterior. ¿Algunas ideas?
¿Cerró y volvió a abrir las ventanas de su navegador? Los navegadores guardan en caché los certificados en la memoria, por lo que debe cerrar y abrir un nuevo navegador para que aparezcan los cambios.
Sí, lo hice. También reinicié mi computadora ahora mismo. No parece funcionar (probado en Chrome, Firefox, Edge). ¿Existe algún lugar donde el certificado pueda almacenarse en caché? Parece que el certificado es el anterior.
¿Usó el SDK 3.0 para generar el certificado?
Sí, eso creo. dotnet --info
salida de @nphmuller :
dotnet --info
.NET Core SDK (reflecting any global.json):
Version: 3.0.100-preview6-012264
Commit: be3f0c1a03
Runtime Environment:
OS Name: Windows
OS Version: 10.0.18362
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\3.0.100-preview6-012264\
Host (useful for support):
Version: 3.0.0-preview6-27804-01
Commit: fdf81c6faf
.NET Core SDKs installed:
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.500 [C:\Program Files\dotnet\sdk]
2.1.502 [C:\Program Files\dotnet\sdk]
2.1.503 [C:\Program Files\dotnet\sdk]
2.1.504 [C:\Program Files\dotnet\sdk]
2.1.505 [C:\Program Files\dotnet\sdk]
2.1.600-preview-009426 [C:\Program Files\dotnet\sdk]
2.1.600-preview-009472 [C:\Program Files\dotnet\sdk]
2.1.600-preview-009497 [C:\Program Files\dotnet\sdk]
2.1.600 [C:\Program Files\dotnet\sdk]
2.1.601 [C:\Program Files\dotnet\sdk]
2.1.602 [C:\Program Files\dotnet\sdk]
2.1.604 [C:\Program Files\dotnet\sdk]
2.1.700 [C:\Program Files\dotnet\sdk]
2.2.200-preview-009648 [C:\Program Files\dotnet\sdk]
2.2.200-preview-009748 [C:\Program Files\dotnet\sdk]
2.2.200-preview-009804 [C:\Program Files\dotnet\sdk]
2.2.200 [C:\Program Files\dotnet\sdk]
2.2.201 [C:\Program Files\dotnet\sdk]
2.2.202 [C:\Program Files\dotnet\sdk]
2.2.204 [C:\Program Files\dotnet\sdk]
2.2.300 [C:\Program Files\dotnet\sdk]
3.0.100-preview6-012264 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.0.0-preview6.19307.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.0.0-preview6-27804-01 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.0.0-preview6-27804-01 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
¿También en Windows?
dotnet --info
solo enumera los sdks
podría haber sido afectado por un archivo global.json en esa carpeta o en cualquier carpeta principal
que daría como resultado la regeneración del mismo certificado antiguo
prueba una limpieza
cheque dotnet --version
luego use el comando --trust
@javiercn ¿A qué te refieres? Estoy en Windows. 🙂
@tebeco dotnet --version
imprime 3.0.100-preview6-012264
también.
el problema es que debes estar seguro de eso cuando realmente ejecutaste ese comando en ese momento
Realmente no puedo seguirlo. ¿Que se supone que haga? 😕
hacer una limpieza completa
no tengo idea si es necesario reiniciar
luego verifique el dotnet version
antes de volver a ejecutar el --trust
one
Eso es lo que ya hice (algunas veces) 🙂 - todavía no tuve éxito.
Tengo un VS2019 Preview 16.2 Preview 2 recién instalado y este es el primer núcleo ASP.NET con el proyecto Kestrel que ejecuto y estoy teniendo el mismo problema. Probé los comandos clean / trust para actualizar el certificado sin cambios.
dotnet --version
3.0.100-vista previa-010184
Este es un proyecto vacío con .ConfigureKestrel () agregado sin ningún cambio
@karaziox, el SDK 3.0.100-preview-010184 es de 3.0.0-preview2, donde este problema no se solucionó hasta la vista previa6. Vaya a https://dotnet.microsoft.com/download/dotnet-core/3.0 e instale SDK 3.0.100-preview6-012264.
@javiercn ¿A qué te refieres? Estoy en Windows. 🙂
@tebeco
dotnet --version
imprime3.0.100-preview6-012264
también.
@Tratcher el problema todavía ocurre en la vista previa 6.
Creo que la solución está en Preview7, no en Preview6. @jkotalik ¿puedes confirmar?
Sigue siendo un problema para mí con dotnet 3.0.100-preview6-012264
y VS 16.2.0 Preview 3.0
IIS funciona bien con la aplicación ASP.Net Core predeterminada, Kestrel falla con ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY
@simonmurdock ¿ puede intentar regenerar manualmente el certificado en la línea de comando con dotnet dev-certs https --clean
y dotnet dev-certs https --trust
? Se resolvieron algunos problemas relacionados con la experiencia del usuario que se solucionarán en la vista previa7, pero el certificado debería funcionar si se vuelve a generar en la vista previa6.
Hola. El mismo problema para mí 3.0.100-preview6-012264
(OS Win 8.1), he instalado VS2019 16.1.1. Verificado con dotnet new blazorhosted
. Intenté limpiar los certificados (cerrando Chrome 75.0.3770.100) con la herramienta dotnet y confiando nuevamente pero sin ayuda.
@vmandic HTTP / 2 no es compatible con Win8.1, deberá desactivarlo.
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2#http2 -support
@Tratcher probablemente deberíamos deshabilitar HTTP2 de forma predeterminada si se ejecuta en Win7 o Win8
@jkotalik abre una nueva edición para la clasificación, por favor. En teoría, puede funcionar en Win8.1, solo hay un problema con el pedido de cifrado y la obtención de un certificado que admita algunos de los cifrados alternativos.
Como el problema aún no se resolvió cuando instalé Preview8 ayer, intenté ejecutar tanto dotnet dev-certs https --clean
como dotnet dev-certs https --trust
nuevamente, sin éxito.
Descubrí que Kestrel todavía estaba usando un certificado antiguo y desactualizado, pero no pude ubicar dicho certificado en el administrador de certificados de Windows. Resulta que los certificados se almacenan en caché aquí: C:\Users\<user>\AppData\Roaming\ASP.NET\Https
. Había tres archivos * .pfx, uno de los cuales obviamente todavía lo usaba Kestrel.
Me tomó literalmente horas encontrar esto. Ya esperaba que los certificados se almacenan en caché, pero no pude encontrarlo en algún lugar de la documentación. Esto realmente necesita ser documentado, por favor.
Me imagino que es porque estás usando contenedores Docker. Esa es la ubicación donde Docker exporta el certificado para importarlo al contenedor.
@anurse , podríamos agregar esto a los documentos, creo. No estoy seguro de las implicaciones que tiene la limpieza de esta carpeta para la gente de la ventana acoplable, pero podemos preguntarles.
Lo que no quiero es agregar esto a la herramienta, ya que es un detalle de implementación de herramientas de la ventana acoplable y no tiene nada que ver con la herramienta.
Dicho esto, no creo que debamos cambiar el tiempo de ejecución aquí siempre que proporcionemos detalles sobre qué hacer si se encuentra con esta situación en los documentos. Presenté https://github.com/aspnet/AspNetCore.Docs/issues/13927 para rastrearlo.
Gracias por elaborar.
Agregar esto a la documentación ayudará a la gente a ahorrar algo de tiempo. ¡Muchas gracias!
Comentario más útil
Hay un error tipográfico en https://github.com/aspnet/AspNetCore/issues/8952#issuecomment -482499042, pero cuando se corrigió, funcionó: