브라우저는 HTTP2에 사용 된 암호에 만족하지 않습니다.
ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY
및 이에 상응하는 크롬
파이어 폭스 전용
나는 about:config
에 들어가서 약한 사이퍼 검사를 비활성화했습니다. 이것은 실제로 효과가 있습니다.
Kestrel IOptions<>
를 통해 HTTP2를 완전히 비활성화하는 간단한 방법이 있습니까?
동작을 재현하는 단계 :
2.2.105
및 3.0.0-preview3
dotnet new webapi -n foo
UseHsts
주석 처리UseHttpsRedirection()
주석 처리dotnet run --project foo.csproj
http
끝점에 도달 => 작동https
엔드 포인트 히트 => 거부 됨나는 시도했다 :
dotnet dev-certs http --clean
dotnet dev-certs http --trust
.vs/
삭제launchSettings.json
를 다른 것으로 변경UseHttpsRedirection()
삭제됨UseHsts()
제거됨내가 한 모든 것이 Vs2019를 업데이트 한 것이 확실합니다. 2 주 전에 동일한 SDK (또는 최신 win10 내부자-빠른 링 업데이트)에서 작동했습니다.
>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>
서버는 어떤 OS에 있습니까? 우리는 2012 / Win8에서 이것을 보았습니다.
다음 옵션을 사용하여 HTTP / 2를 옵트 아웃 할 수 있습니다.
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2#listenoptionsprotocols
예 :
{
"Kestrel": {
"EndPointDefaults": {
"Protocols": "Http1"
}
}
}
여기에서 플랫폼 요구 사항을 참조하십시오.
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2#http2 -support
Windows 10-빠른 링 내부자
Vs2019 미리보기
netcoreapp3.0.0 미리보기
(엣지 뭉치 ^^)
지난주에 잘 작동했습니다. 내부자 범프 + vs2019의 최신 미리보기 이후
또한 Win2016 서버용 HTTP2를 비활성화하기 위해 2 개의 레지스트리 키를 추가하려고했습니다.
어떤 브라우저에도 영향을 미치지 않았습니다.
이러한 등록 키는 IIS / Http.Sys 전용입니다. Insiders에 회귀가 있는지 궁금합니다. 뿡뿡
개발자에게 이런 식으로 끝날 수있는 서버에서 실행 중임을 알리는 방법입니까?
예를 들어 현재 컴퓨터 / 서버에서 사용할 수있는 암호를 나열하는 dotnet tool
예 : 잠재적 인 약한 암호 등을 나타내는 색상)입니다.
또는 나열된 암호가 시작시 너무 약한 경우 서버를 공격적이고 failfast로 만드는 부울입니다.
이것은 "허용되는"목록을 알아야 할 필요가 있었고 그러한 목록이 존재하는지, 그리고 그것이 가능한지 전혀 알 수 없습니다.
그것이 어디에서 왔는지 깨닫는 데 오랜 시간이 걸렸습니다.
특정 Windows 빌드 번호를 제공 할 수 있습니까?
더 이상 모든 rtm win10 빌드에서 작동한다고 말할 수없는 경우에만 이러한 종류의 도구를 추가 할 것입니다.
1803 업데이트부터 IIS를 사용하면 바인딩별로 Http.Sys를 제어 할 수 있습니다. 더 이상 전체 서버에 대해 HTTP / 2를 비활성화 할 필요가 없습니다.
즉, 전역 등록 키는 여전히 작동합니다. Windows 빌드 번호를 공유해 주시면 조사하겠습니다.
@shirhatti 그들은 Kestrel을 사용하고 있습니다.
🤦♂️. 내 이전 댓글을 무시합니다.
또한 내가 고칠 수 있다면 Http2를 비활성화하고 싶지 않습니다.)
@Tratcher
도움이 되나요?
> 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 협상중인 내용을 정확히 볼 수 있도록 wireshark 추적을 제공 할 수 있습니까? 감사!
cc @anurse
당신이 찾고있는 것을 추출하기 위해 어떤 필터를 사용할 것인가, 내가 원하지 않는 데이터를 유출 할 수 있다고 확신한다.
또한 나는 실제로 무언가를 본다는 의심이 있습니다.
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)
지금은 Firefox를 사용하여 캡처를 계속할 것이지만 wireshark를 설치할 때 잘못된 옵션을 선택하거나 (루프백 / wifi / 관리자 등에 대한 질문이 많음 ...) 너무 많은 옵션에서 opt_out이있을 수 있습니다.
또한 나는이 필터를 사용하려고했습니다 : tcp.port == 5043
(Kestrel 포트로 추정 됨)
그리고 나는 아무것도 보지 않는다
또한 나는 H2를 비활성화하지 않았다. soooo는 그 정상이다.
(이중 반올림 값은 보너스입니다)
뿡뿡
Wireshark 캡처를 정말로하고 싶습니다.
랩톱 (WiFi)을 사용하고 kestrel에 localhost를 사용하고 있습니다.
현재 ~ 6-8 개의 네트워크 어댑터가있는 노트북
깨끗하고 멋진 캡처를하는 가장 좋은 방법은 무엇입니까?
필요한 것을 필터링하기 위해 어떤 캡처 필터를 사용해야합니까?
나는 이것을 18356.21에서 재현 할 수 있으며 # 8409도 18362.1에보고합니다.
IE와 Edge에서 작동하므로 Windows가 지원하는 암호와 Chrome이 지원하는 암호가 충돌합니다.
@Tratcher
Well Chrome과 Firefox
그건 좀 더럽 네요
무엇을 도와 드릴까요?
@tebeco 나는 우리가 지금 진행하기에 충분하다고 생각합니다, 감사합니다.
미리보기로 가져 오기 5.
가능한 경우 해결 방법은 Vs.net 및 IIS Express를 사용하고 이러한 방식으로 디버깅하는 것입니다. IIS Express 개발 인증서가 Windows 내부 릴리스에서도 올바르게 작동하기 때문입니다. 이것을 치는 사람들을 위해 지금 문제를 해결합니다.
또 다른 데이터 포인트 : 우리는 Kestrel에서 IIS Express의 인증서를 사용하여 테스트했으며 또한 작동했습니다. AspNetCore 개발 인증서로 변경해야하는 사항을 확인할 수 있습니다.
@Tratcher 그렇게 할 단계가 있습니까? 지금은 달콤한 해결 방법이 될 것입니다. 효과가있어서 다행입니다!
@anurse 코드 샘플에 붙여 넣을 수 있습니까?
네. 3.0 용 개발 인증서를 수정하려고하지만 임시 해결 방법으로 Kestrel에서 직접 IIS Express 개발 인증서를 사용할 수 있습니다.
이것은 Windows에서만 작동하며 (지금까지 문제는 그곳에서만보고되었습니다) IIS Express를 설치하고 구성해야합니다 (VS 설치만으로 충분합니다). 실제로 사이트를 호스팅 하기 사용할 필요는 없습니다. 단지 개발 인증서를 빌릴뿐입니다. :).
먼저 사용자 인증서 저장소에서 IIS Express 인증서를 찾아 지문을 가져와야합니다. 다음 PowerShell 스크립트가 트릭을 수행합니다.
dir Cert:\CurrentUser\Root\ | Where { $_.FriendlyName -like "IIS Express*" } | Select Thumbprint
지문이 있으면 Program.cs
에 약간의 코드를 작성하여 해당 인증서를 저장소에서 가져와 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 굉장합니다! 감사!
개발 인증서를 업데이트해야합니다. @javiercn 은 당신이 볼 수있는 것입니까? Win 10 18356의 IIS Express Dev Cert는 제대로 작동하지만 우리는 그렇지 않습니다. 우리가해야 할 일은 동일한 요구 사항을 충족하는지 확인하는 것뿐입니다.
Windows 10 19H1에서 개발자 인증서가 완전히 손상되었으므로 미리보기 5의 우선 순위가 높습니다.
cc @mkArtakMSFT
@anurse 문제를 읽었지만 실행 가능해야합니다. @blowdart 에게
그것이 제 이해입니다. 내가 말했듯이, 우리는 IIS Express 인증서가 제대로 작동 하고 있다는 것을 알고 있습니다. 단지 무엇이 다른지 파악하고 해당 변경 사항을 인증서에도 적용하면됩니다.
@shirhatti IIS 인증서에서 변경된 사항을 구체적으로 알고있는 사람을 아십니까? 변경 사항을 알고 있다면 인증서 세부 사항에 대한 다이빙을 절약하는 데 도움이 될 수 있습니다. :)
Windows 10 컴퓨터를 만들고 최신 내부자 빌드로 업데이트 한 다음 vs (IIS가 인증서를 설치하도록)를 설치하여이를 살펴 보았습니다.
인증서에서 아무것도 볼 수 없었습니다. 누구든지 "작업 인증서"를 내보내고 나와 함께 볼 수 있도록 공유 할 수 있습니까? 공개 부분 만 필요합니다.
비교할 수 있도록 여기에 둘 다 있습니다. 또한 ASP.NET Core 인증서는 현재 사용자의 개인 저장소에 있고 IIS Express 인증서는 중요한 경우 로컬 컴퓨터의 개인 저장소에 있습니다.
@anurse 나는 이것을 보았습니다. 인증서는 기본적으로 동일하지만 (@ JohnGalt1717에서 제공 한 인증서를 기반으로) 다음과 같은 몇 가지 사항이 있습니다.
내 작업 이론은 해결되는 TLS 제품군이 둘간에 다르다는 것입니다. @Tratcher 두 인증서에 대해 협상 된 제품군을 얻을 수 있습니까? 어떤 이유로 우리 인증서를 사용하면 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256이 선택되지 않을 수 있습니다. (키 교환을위한 Eliptic Curve Diffie-Helman Ephemeral, 인증을위한 RSA, 암호화를위한 AES128 Galois Counter Mode를 읽습니다.)
이를 기반으로 할 수있는 해결책은 단순히 키 사용에 디지털 서명을 추가하는 것입니다. 즉, Kestrel과 IIS에서 사용하는 기본 암호 모음 세트를 살펴보고 비교해야한다고 생각합니다. 제대로 고치지 마십시오.
@anurse 아래 powershell 스 니펫은 디지털 서명을 추가하여 "aspnetcore 호환"https 인증서를 생성합니다. 나는 이것을 Win 10 내부자 빌드에서 재현하려고 노력했지만 할 수 없었습니다. 팀원에게 시험해 볼 수 있습니까?
더 중요한 것은 IIS와 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>
}
어제 내부자 빌드를 사용했다면 19H1이 아닌 20H1입니다. 문제가있는 버전을 가져 오려면 릴리스 미리보기 링 또는 느린 링을 수행해야합니다. (현재 최종 19H1의 문제일까요?)
해당 EKU를 추가해도 괜찮습니다.
방금 문제를 재현 한 다음 @javiercn 의 업데이트 된 인증서를 설치하고 전환했으며 더 이상 업데이트 된 인증서로 문제
https://github.com/aspnet/AspNetCore/pull/9293/files PR이 KU를 업데이트하기 위해 나왔습니다.
PR이 합병되었습니다. 여기서 해결할 다른 것이 없다고 생각되면 닫으십시오.
어제 20H1로 업데이트했습니다.
3.0.0-previewX
미리보기에 병합이 포함되는지 잘 모르겠습니다.
그것에 대해 나를 깨달을 수 있습니까? preview4 또는 5?
(저는 밤마다 테스트 할 수 있지만 빠른 테스트 후에는 사용하지 않을 것입니다)
이것은 preview5의 일부입니다.
달리면
dotnet dev-certs http --clean
위의 powershell 스크립트와
dotnet dev-certs http --trust
차단을 해제해야합니다.
모두에게 감사합니다. 이제이 문제가 해결되었으며 Preview5 릴리스의 Known issues
에이를 포함하는 것과 관련하여 후속 조치를 취하겠습니다.
https://github.com/aspnet/AspNetCore/issues/8952#issuecomment -482499042에 오타가 있지만 수정하면 다음과 같이 작동합니다.
dotnet dev-certs https --clean
dotnet dev-certs https --trust
방금 미리보기 6을 설치했지만 여전히 발생했습니다.
Chrome에서 ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY
합니다.
이전에 미리보기를 설치하지 않았고 SDK 2.0 이상 만 설치했습니다.
SDK / 런타임 버전 : 3.0.100-preview6-012264
.
dotnet --info 출력
.NET Core SDK (global.json 반영) :
버전 : 3.0.100-preview6-012264
커밋 : be3f0c1a03
런타임 환경 :
OS 이름 : Windows
OS 버전 : 10.0.18362
OS 플랫폼 : Windows
RID : win10-x64
기본 경로 : C : \ Program Filesdotnet \ sdk3.0.100-preview6-012264 \
호스트 (지원에 유용) :
버전 : 3.0.0-preview6-27804-01
커밋 : fdf81c6faf
설치된 .NET Core SDK :
2.1.402 [C : \ Program Filesdotnet \ sdk]
2.1.403 [C : \ Program Filesdotnet \ sdk]
2.1.500 [C : \ Program Filesdotnet \ sdk]
2.1.502 [C : \ Program Filesdotnet \ sdk]
2.1.503 [C : \ Program Filesdotnet \ sdk]
2.1.504 [C : \ Program Filesdotnet \ sdk]
2.1.505 [C : \ Program Filesdotnet \ sdk]
2.1.507 [C : \ Program Filesdotnet \ sdk]
2.1.600 [C : \ Program Filesdotnet \ sdk]
2.1.601 [C : \ Program Filesdotnet \ sdk]
2.1.602 [C : \ Program Filesdotnet \ sdk]
2.1.604 [C : \ Program Filesdotnet \ sdk]
2.1.700 [C : \ Program Filesdotnet \ sdk]
2.1.800-preview-009696 [C : \ Program Filesdotnet \ sdk]
2.2.100 [C : \ Program Filesdotnet \ sdk]
2.2.102 [C : \ Program Filesdotnet \ sdk]
2.2.104 [C : \ Program Filesdotnet \ sdk]
2.2.202 [C : \ Program Filesdotnet \ sdk]
2.2.204 [C : \ Program Filesdotnet \ sdk]
2.2.300 [C : \ Program Filesdotnet \ sdk]
3.0.100-preview6-012264 [C : \ Program Filesdotnet \ sdk]
설치된 .NET Core 런타임 :
Microsoft.AspNetCore.All 2.1.4 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.5 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.6 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.7 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.8 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.9 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.11 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.0 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.1 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.2 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.3 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.5 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.4 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.5 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.6 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.7 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.8 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.9 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.11 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.0 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.1 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.2 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.3 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.5 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.0.0-preview6.19307.2 [C : \ Program Filesdotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.4 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.5 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.6 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.7 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.8 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.9 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.11 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.0 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.1 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.2 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.3 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.5 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 3.0.0-preview6-27804-01 [C : \ Program Filesdotnet \ shared \ Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.0.0-preview6-27804-01 [C : \ Program Filesdotnet \ shared \ Microsoft.WindowsDesktop.App]
나를 위해 https://github.com/aspnet/AspNetCore/issues/11283 과 관련이있을 수 있습니다.
뿡 빵뀨
preview6 dotnet 환경에서 다음 명령을 실행 해 보셨습니까?
dotnet dev-certs https --clean
dotnet dev-certs https --trust
이전 인증서가있을 가능성이 있습니다. 인증서를 업그레이드하는 로직을 추가했지만 그것이 preview6로 만들어 졌는지 또는 preview7에서 제공 될지 확실하지 않습니다.
헉
해결 방법으로 시도했지만 --clean
가 실패합니다. 이 문제에 대해 https://github.com/aspnet/AspNetCore/issues/11283 을 만들었습니다.
@nphmuller 어떤 OS를 사용하고 있습니까?
인증서 관리자를 열고 인증서를 직접 정리할 수 있습니다 (이상적이라고 생각하지 않습니다)
Windows (Win + R)-> mmc-> enter-> (Ctrl + M (스냅인 추가)-> 인증서-> 내 사용자 계정-> 인증서-> 개인-> 인증서-> 'localhost '-> ASP.NET Core HTTPS ...
가있는 항목을 제거합니다.
신뢰할 수있는 루트 인증 기관의 인증서로 반복
dotnet dev-certs https --trust
재실행
헉
작동합니다. 감사!
저는 Win 10 1903 (18362.175)을 사용 중입니다 ( dotnet --info
출력에서도 초기 의견에 작성했습니다).
제 생각에는 당신이 쓴 것처럼 업그레이드 로직이 미리보기 6으로 만들지 않았지만 미리보기 7에있을 것입니다.
@javiercn @nphmuller 동일한 문제가 발생하여 인증서를 수동으로 제거하고 dotnet dev-certs https --trust
사용하여 다시 생성 해 보았습니다. 작동했지만 이제 ERR_CERT_AUTHORITY_INVALID 오류가 발생합니다. Kestrel이 여전히 이전 인증서를 사용하고있는 것 같습니다. 어떤 아이디어?
브라우저 창을 닫았다가 다시 열었습니까? 브라우저는 인증서를 메모리에 캐시하므로 변경 사항을 표시하려면 새 브라우저를 닫고 열어야합니다.
네, 그렇습니다. 방금 컴퓨터를 다시 시작했습니다. 작동하지 않는 것 같습니다 (Chrome, Firefox, Edge에서 시도). 인증서를 캐시 할 수있는 장소가 있습니까? 인증서가 실제로 이전 인증서 인 것 같습니다.
3.0 SDK를 사용하여 인증서를 생성 했습니까?
네, 그렇게 생각합니다. dotnet --info
출력은 @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
창문에서도?
dotnet --info
그냥 SDK 나열
해당 폴더 또는 상위 폴더의 global.json의 영향을 받았을 수 있습니다.
동일한 이전 인증서를 다시 생성하게됩니다.
청소 해봐
dotnet --version
그런 다음 --trust
명령을 사용하십시오.
@javiercn 무슨 뜻이야? 저는 Windows를 사용하고 있습니다. 🙂
@tebeco dotnet --version
는 3.0.100-preview6-012264
도 인쇄합니다.
문제는 실제로 그 순간에 해당 명령을 실행할 때 확인해야한다는 것입니다.
나는 정말로 따라갈 수 없다. 나는 무엇을해야합니까? 😕
완전히 정리하다
재부팅이 필요한지 모르겠다
그런 다음 --trust
하나를 다시 실행하기 전에 dotnet version
를 확인하십시오.
그것이 내가 이미 한 일입니다 (몇 번) 🙂-여전히 성공하지 못했습니다.
새로 설치된 VS2019 Preview 16.2 Preview 2가 있으며 이것은 Kestrel 프로젝트를 실행하는 첫 번째 ASP.NET 코어이며 동일한 문제가 발생합니다. 변경하지 않고 인증서를 새로 고치기 위해 clean / trust 명령을 시도했습니다.
dotnet --version
3.0.100- 미리보기 -010184
변경없이 .ConfigureKestrel ()이 추가 된 빈 프로젝트입니다.
@karaziox 3.0.100-preview-010184 SDK는 3.0.0-preview2에서 왔으며,이 문제는 preview6까지 수정되지 않았습니다. https://dotnet.microsoft.com/download/dotnet-core/3.0으로 이동하여 SDK 3.0.100-preview6-012264를 설치합니다.
@javiercn 무슨 뜻이야? 저는 Windows를 사용하고 있습니다. 🙂
@tebeco
dotnet --version
는3.0.100-preview6-012264
도 인쇄합니다.
@Tratcher 문제는 여전히
수정 사항은 preview6이 아닌 preview7에 있다고 생각합니다. @jkotalik 확인할 수 있습니까?
dotnet 3.0.100-preview6-012264
및 VS 16.2.0 Preview 3.0
여전히 문제가 있습니다.
IIS는 기본 ASP.Net Core 응용 프로그램에서 제대로 작동하고 Kestrel은 ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY로 실패합니다.
@simonmurdock 은 dotnet dev-certs https --clean
및 dotnet dev-certs https --trust
명령 줄에서 인증서를 수동으로 다시 생성 할 수 있습니다. 사용자 환경과 관련하여 몇 가지 문제가 해결되어 preview7에서 수정되지만, preview6에서 다시 생성되면 인증서가 작동합니다.
안녕하세요. 나에게 동일한 문제 3.0.100-preview6-012264
(OS Win 8.1), VS2019 16.1.1을 설치했습니다. dotnet new blazorhosted
. dotnet 도구로 인증서를 정리하고 (Chrome 75.0.3770.100 닫기) 다시 신뢰했지만 도움이되지 않았습니다.
@vmandic HTTP / 2는 Win8.1에서 지원되지 않으므로이 기능을 꺼야합니다.
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2#http2 -support
@Tratcher Win7 또는 Win8에서 실행중인 경우 기본적으로 HTTP2를 비활성화해야합니다.
@jkotalik 은 분류에 대한 새로운 문제를 엽니 다. 이론적으로는 Win8.1에서 작동 할 수 있지만, 암호 순서 지정 및 일부 대체 암호를 지원하는 인증서를 얻는 데 문제가 있습니다.
어제 Preview8을 설치해도 문제가 해결되지 않았기 때문에 dotnet dev-certs https --clean
와 dotnet dev-certs https --trust
다시 실행하려고 시도했지만 성공하지 못했습니다.
Kestrel이 여전히 오래된 오래된 인증서를 사용하고 있음을 발견했지만 Windows 인증서 관리자에서 해당 인증서를 찾을 수 없었습니다. 인증서가 C:\Users\<user>\AppData\Roaming\ASP.NET\Https
캐시 된 것으로 나타났습니다. 세 개의 * .pfx 파일이 있었는데 그중 하나는 Kestrel에서 여전히 사용 중이었습니다.
이것을 찾는 데 문자 그대로 몇 시간이 걸렸습니다. 이미 인증서가 캐시 될 것으로 예상했지만 설명서에서 찾을 수 없었습니다. 이것은 정말로 문서화되어야합니다.
도커 컨테이너를 사용하고 있기 때문이라고 생각합니다. Docker가 인증서를 내보내 컨테이너로 가져 오는 위치입니다.
@anurse 우리가 생각하는 문서에 이것을 추가 할 수 있습니다. 이 폴더를 정리하는 것이 도커 사람들에게 미치는 영향을 잘 모르겠지만 우리는 그들에게 물어볼 수 있습니다.
내가 원하지 않는 것은 도커 도구 구현 세부 사항으로 도구에 이것을 추가하는 것이며 도구와 관련이 없습니다.
즉, 문서에서 이러한 상황이 발생하면 수행 할 작업에 대한 세부 정보를 제공하는 한 여기서 런타임을 변경할 필요가 없다고 생각합니다. 나는 그것을 추적하기 위해 https://github.com/aspnet/AspNetCore.Docs/issues/13927 을 제출했습니다.
설명해 주셔서 감사합니다.
이것을 문서에 추가하면 사람들이 시간을 절약 할 수 있습니다. 감사합니다!
가장 유용한 댓글
https://github.com/aspnet/AspNetCore/issues/8952#issuecomment -482499042에 오타가 있지만 수정하면 다음과 같이 작동합니다.