Aspnetcore: لا يمكن الوصول إلى المضيف في https بسبب ضعف تشفير Http2

تم إنشاؤها على ٣١ مارس ٢٠١٩  ·  75تعليقات  ·  مصدر: dotnet/aspnetcore

وصف الخطأ

المتصفح ليس سعيدًا بالشفرة المستخدمة لـ HTTP2 (على ما أعتقد)
ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY وما يعادله في الكروم

حل سيئ

فقط لمتصفح فايرفوكس
تمكنت من الدخول إلى about:config وتعطيل التحقق من رمز التشفير الضعيف ، فهذا له تأثير فعلي

هل هناك طريقة بسيطة لتعطيل HTTP2 تمامًا عبر Kestrel IOptions<> ؟

لإعادة إنتاج

خطوات إعادة إنتاج السلوك:

  1. تم إلغاء تثبيت ALL sdk
  2. تمت إزالة المجلد من ملفات البرنامج / user / appdata / temp
  3. قم بتثبيت sdk 2.2.105 و 3.0.0-preview3 من https://dot.net
  4. نسخة من ASP.NET Core: التي تم شحنها مع معاينة 3
  5. dotnet new webapi -n foo
  6. التعليق خارج UseHsts
  7. التعليق خارج UseHttpsRedirection()
  8. dotnet run --project foo.csproj
  9. ضرب http نقطة النهاية => يعمل
  10. ضرب https endpoint => مرفوض

سلوك متوقع

انا حاولت :

  • dotnet dev-certs http --clean
  • dotnet dev-certs http --trust
  • حذف .vs/
  • غير launchSettings.json إلى أي شيء آخر
  • تمت إزالة UseHttpsRedirection()
  • تمت إزالة UseHsts()
  • لا يعمل من أجل IP / نظام أسماء النطاقات في المتصفح

متأكد تمامًا من أن كل ما فعلته هو تحديث Vs2019 ، لقد كان workign منذ أسبوعين على نفس 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>
Done area-commandlinetools bug servers-kestrel

التعليق الأكثر فائدة

يوجد خطأ إملائي في https://github.com/aspnet/AspNetCore/issues/8952#issuecomment -482499042 ، ولكن عند التصحيح ، نجح ذلك:

dotnet dev-certs https --clean
dotnet dev-certs https --trust

ال 75 كومينتر

ما هو نظام تشغيل الخادم؟ لقد رأينا هذا في 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 - Fast ring insider
معاينة Vs2019
معاينة netcoreapp3.0.0
(مجموعة من الأشياء المتطورة ^ ^)

كان يعمل بشكل جيد الأسبوع الماضي. تعرضت لصدمة داخلية + أحدث معاينة لـ vs2019 منذ ذلك الحين

حاول أيضًا إضافة مفتاح تسجيل 2 لتعطيل HTTP2 لخادم Win2016.
لم يكن له أي تأثير على أي متصفح

هذه مفاتيح reg هي فقط لـ IIS / Http.Sys. أتساءل عما إذا كان لدى المطلعون تراجع. تضمين التغريدة

هل هي طريقة للسماح للمطورين بمعرفة أنهم يعملون على خادم قد ينتهي به الأمر على هذا النحو؟

على سبيل المثال ، تشفير القوائم dotnet tool الذي يمكن استخدامه على الجهاز / الخادم الحالي ، على سبيل المثال ، الألوان للإشارة إلى وجود تشفير ضعيف محتمل وما إلى ذلك.
أو منطقية لجعل الخادم عدوانيًا وسريع الفشل إذا كان التشفير المدرج ضعيفًا جدًا في وقت بدء التشغيل.

سيتطلب هذا معرفة قائمة "المقبول" وليس لدي أي فكرة حقًا عما إذا كانت هذه القائمة موجودة وما إذا كانت ممكنة على الإطلاق

استغرقني وقتًا طويلاً لأدرك من أين أتت

هل يمكنك إعطاء رقم بناء Windows المحدد؟

سنضيف هذا النوع من الأدوات فقط إذا لم نعد قادرين على القول بأنها تعمل على جميع إصدارات rtm win10.

اعتبارًا من التحديث 1803 ، يسمح لك IIS بالتحكم في Http.Sys على أساس كل ارتباط. لم تعد بحاجة إلى تعطيل HTTP / 2 للخادم بأكمله.

image

ومع ذلك ، يجب أن يعمل مفتاح التسجيل العالمي. هل يمكنك مشاركة رقم إصدار Windows الخاص بك وسأبحث فيه

shirhatti إنهم يستخدمون كيستريل.

عذرًا 🤦‍♂️. تجاهل تعليقي السابق.

كما أنني لا أرغب حقًا في تعطيل Http2 إذا كان من الممكن إصلاحه ؛)

تضمين التغريدة
هل هذا يساعد؟

> systeminfo
OS Version:                10.0.18362 N/A Build 18362
OS Configuration:          Standalone Workstation

image

> 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 حتى نتمكن من رؤية ما يتم التفاوض عليه بالضبط؟ شكر!

ccanurse

ما هو الفلتر الذي سأستخدمه لاستخراج ما تبحث عنه ، بالتأكيد يمكنني تسريب البيانات التي لا أريدها أيضًا
لدي أيضًا شك في أنني أرى شيئًا بالفعل:

  • مع الكروم ليس لدي سجلات الخروج من Kestrel
  • مع Firefox حصلت على هذا:
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 / admin وما إلى ذلك ...) وقد يكون لدي اختيار من العديد من الخيارات

أيضًا حاولت استخدام هذا الفلتر: tcp.port == 5043 (والذي من المفترض أن يكون منفذ Kestrel)
ولا ارى شيئا

أيضًا لم أقم بتعطيل H2 ، لذا هل هذا طبيعي:

(القيمة المضاعفة هي مكافأة)

image

تضمين التغريدة

هل ترغب حقًا في التقاط Wireshark
أنا أستخدم جهاز كمبيوتر محمول (حتى Wifi) وأستخدم localhost لـ kestrel
على جهاز كمبيوتر محمول يحتوي الآن على محول شبكة ~ 6-8

ما هي أفضل طريقة للحصول على لقطة نظيفة وجميلة؟

وأيضًا ما هو مرشح الالتقاط الذي يجب أن أستخدمه لتصفية ما تحتاجه؟

يمكنني إعادة إنتاج هذا في 18356.21 و # 8409 يبلغ أيضًا عن 18362.1.

لاحظ أنه يعمل في IE و Edge ، لذا فإن هذا تعارض بين ما يدعمه Windows مقابل ما يدعمه Chrome.

تضمين التغريدة
حسنًا ، Chrome و Firefox
هذا مقرف بعض الشيء

من المحتمل ألا تكون شهادة [dev] نفسها غير آمنة ، ولكنها متوافقة فقط مع بدلات تشفير معينة. أي لا أعتقد أنه يعمل مع cyphers EC. تعود المفاوضات إلى شهادة الأصفار المتوافقة ويبدو أنها لا تجد واحدة تلبي متطلبات HTTP / 2.

تعليق Tratcher من الموضوع الآخر

ماذا يمكنني أن أفعل للمساعدة؟

tebeco أعتقد أن لدينا ما يكفي

إحضار إلى Preview5.

الحل ، إذا استطعت ، هو استخدام Vs.net و IIS Express وتصحيح الأخطاء بهذه الطريقة لأن شهادة dev IIS Express تعمل بشكل صحيح حتى على إصدارات windows insider. يحل المشكلة الآن لمن يضربون هذا.

نقطة بيانات أخرى: لقد اختبرنا استخدام شهادة IIS Express في Kestrel ونجحت أيضًا ، وسنرى ما الذي يجب تغييره باستخدام AspNetCore dev cert.

Tratcher هل لديك خطوات للقيام بذلك؟ سيكون حلاً لطيفًا في الوقت الحالي. سعيد أنها عملت!

anurse هل يمكنك لصق نموذج التعليمات البرمجية الخاص بك؟

نعم. نعتزم إصلاح شهادة dev الخاصة بنا للإصدار 3.0 ، ولكن كحل مؤقت يمكنك استخدام شهادة تطوير IIS Express مباشرةً من Kestrel.

يعمل هذا فقط على Windows (ولكن حتى الآن تم الإبلاغ عن المشكلة هناك فقط) ، ويتطلب أن يكون لديك IIS Express مثبتًا ومهيئًا (تثبيت VS يكفي لهذا). لا يتعين عليك استخدام IIS Express لاستضافة موقعك ، فنحن نستعير فقط شهادة تطويره :).

تحتاج أولاً إلى العثور على شهادة 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();
                    });
                });
            });
}

تضمين التغريدة شكر!

نحن بحاجة إلى تحديث سيرت التطوير الخاص بنا. javiercn هل هذا شيء يمكنك النظر إليه؟ يعمل IIS Express Dev Cert في Win 10 18356 بشكل جيد ، لكننا لا يعمل. كل ما علينا القيام به هو التأكد من تطابقنا مع المتطلبات نفسها.

هذه أولوية عالية للمعاينة 5 نظرًا لأن شهادة dev معطلة تمامًا على Windows 10 19H1.

ccmkArtakMSFT

anurse بعد قراءة المشكلة ، ولكن يجب أن تكون قابلة للتنفيذ. سيتعين علينا السماح لـ

هذا ما فهمته. كما قلت ، نعلم أن شهادة IIS Express تقوم بذلك بشكل صحيح ، نحتاج فقط إلى معرفة ما هو مختلف وتطبيق هذا التغيير على شهادتنا أيضًا :).

shirhatti هل تعرف أي شخص يعرف على وجه التحديد التغيير الذي تم إجراؤه في شهادة IIS؟ قد يساعد في حفظ بعض الغوص في تفاصيل الشهادة إذا عرفنا للتو التغييرات التي تم إجراؤها :)

لقد ألقيت نظرة على هذا من خلال إنشاء جهاز يعمل بنظام Windows 10 ، وتحديثه إلى أحدث إصدار داخلي وتثبيته مقابل (بحيث يقوم IIS بتثبيت الشهادة).

لم أتمكن من رؤية أي شيء على الشهادة. هل يمكن لأي شخص تصدير "شهادة عمل" ومشاركتها معي حتى أتمكن من إلقاء نظرة عليها؟ أنا فقط بحاجة إلى الجزء العام.

Certs.zip

إليك كلاهما حتى تتمكن من المقارنة. لاحظ أيضًا أن شهادة ASP.NET Core موجودة في المخزن الشخصي للمستخدم الحالي وأن شهادة IIS Express موجودة في المخزن الشخصي للجهاز المحلي إذا كان الأمر مهمًا.

anurse لقد

  • القيود الأساسية: نضعها في ، لكن IIS لا. لا ينبغي أن يهم.
  • استخدام المفتاح: نضيف فقط تشفير المفتاح بينما يضيف IIS التوقيع الرقمي وتشفير البيانات.

نظريتي العملية هي أن مجموعة TLS التي يتم حلها تختلف بين الاثنين. Tratcher هل يمكنك الحصول على المجموعة التفاوضية لكلتا الشهادتين؟ لسبب ما ، من خلال شهادتنا ، من المحتمل أن TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 لم يتم اختياره. (هذا يقرأ Eliptic Curve Diffie-Helman Ephemeral لتبادل المفاتيح ، RSA للمصادقة ، AES128 Galois Counter Mode للتشفير).

بناءً على ذلك ، فإن الحل المحتمل هو ببساطة إضافة التوقيع الرقمي إلى استخدام المفتاح. ومع ذلك ، أعتقد أنه يستدعي النظر في المجموعة الافتراضية من مجموعات التشفير المستخدمة من قبل Kestrel و IIS ومقارنتها ، حيث أعتقد أن Kestrel تخفض التصنيف إلى شيء غير مقبول ، لذا فإن تغيير الشهادة الخاصة بنا لن يؤدي إلا إلى وضع أداة مساعدة على المشكلة ولا تصلحه بشكل صحيح.

anurse سينشئ مقتطف هل يمكنك الحصول على شخص ما في الفريق لتجربته؟

والأهم من ذلك ، أعتقد أنه يجب علينا مراجعة مجموعات التشفير التي يقدمها 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>
}

إذا استخدمت الإصدار الداخلي من الأمس ، فهذا يعني أن 20H1 وليس 19H1. ستحتاج إلى إجراء حلقة معاينة الإصدار أو الحلقة البطيئة للحصول على الإصدار الذي يحتوي على المشكلة. (ربما هذه مشكلة في 19H1 النهائي الآن؟)

أنا موافق على إضافة هذا EKU.

لقد أعدت حل المشكلة الآن ، ثم قمت بتثبيت javiercn وتحولت إليها ولم تعد المشكلة الشهادة المحدثة.

https://github.com/aspnet/AspNetCore/pull/9293/files PR خارج لتحديث جامعة الكويت.

تم دمج العلاقات العامة. أغلقه إذا شعرت أنه لا يوجد شيء آخر تتناوله هنا

لقد قمت للتو بالتحديث إلى 20H1 أمس
لست متأكدًا مما تحتويه المعاينة 3.0.0-previewX على الدمج
هل تستطيع أن تنورني عليه؟ معاينة 4 أو 5؟
(يمكنني إجراء اختبار ليلي ولكن لا أرغب في استخدامه بعد الاختبار السريع)

سيكون هذا جزءًا من معاينة 5.

اذا ركضت

dotnet dev-certs http --clean

نص بوويرشيل أعلاه وبعد ذلك

dotnet dev-certs http --trust

يجب أن تحرر لك.

شكرا لكم جميعا. تم إصلاح هذا الآن وسأتابع فيما يتعلق بتضمين هذا في الإصدار Known issues لـ Preview5.

يوجد خطأ إملائي في 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 / Runtime: 3.0.100-preview6-012264 .

دوت نت - إخراج المعلومات
NET Core SDK (تعكس أي global.json):
الإصدار: 3.0.100-preview6-012264
الالتزام: be3f0c1a03

بيئة التشغيل:
اسم نظام التشغيل: Windows
إصدار نظام التشغيل: 10.0.18362.0
نظام التشغيل: Windows
RID: win10-x64
المسار الأساسي: C: \ Program Files \ dotnet \ sdk3.0.100-preview6-012264 \

المضيف (مفيد للدعم):
الإصدار: 3.0.0-preview6-27804-01
الالتزام: fdf81c6faf

NET Core SDKs المثبتة:
2.1.402 [C: \ Program Files \ dotnet \ sdk]
2.1.403 [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.507 [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.1.800-معاينة-009696 [C: \ Program Files \ dotnet \ sdk]
2.2.100 [C: \ Program Files \ dotnet \ sdk]
2.2.102 [C: \ Program Files \ dotnet \ sdk]
2.2.104 [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 المثبتة:
Microsoft.AspNetCore.All 2.1.4 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.5 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.6 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.7 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.8 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.9 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.11 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.0 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.1 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.2 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.3 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.5 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.4 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.5 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.6 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.7 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.8 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.9 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.11 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.0 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.1 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.2 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.3 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.5 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.0.0-preview6.19307.2 [C: \ Program Files \ dotnet \ sharedMicrosoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.4 [C: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.5 [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]

قد تكون مرتبطة بـ https://github.com/aspnet/AspNetCore/issues/11283 بالنسبة لي.

تضمين التغريدة

هل جربت تشغيل الأوامر التالية مع بيئة معاينة dotnet؟

dotnet dev-certs https --clean
dotnet dev-certs https --trust

من المحتمل أن لديك شهادة قديمة. أضفنا منطقًا لترقية الشهادة ، لكنني لست متأكدًا مما إذا كان قد جعلها في المعاينة 6 أو ستكون متاحة في المعاينة 7.

تضمين التغريدة
حاولت ، كحل بديل ، ولكن فشل --clean . لقد أنشأت https://github.com/aspnet/AspNetCore/issues/11283 لهذه المشكلة.

nphmuller ما نظام التشغيل الذي تستخدمه؟

يمكنك فتح مدير الشهادات وتنظيف الشهادات بنفسك (أحصل على هذا ليس مثاليًا)
على windows (Win + R) -> mmc -> أدخل -> (Ctrl + M (إضافة أداة إضافية) -> الشهادات -> حساب المستخدم الخاص بي -> الشهادات -> الشخصية -> الشهادات -> ابحث عن تلك التي تحتوي على مضيف محلي '-> إزالة العناصر التي تحتوي على ASP.NET Core HTTPS ... .
كرر ذلك مع الشهادات الموجودة على مراجع مصادقة الجذر الموثوقة
أعد تشغيل dotnet dev-certs https --trust

تضمين التغريدة
هذا العمل. شكر!
أنا على Win 10 1903 (18362.175) (أيضًا في الناتج dotnet --info ، لقد كتبت في تعليقي الأولي)

تخميني ، كما كتبت ، أن منطق الترقية لم يجعله قادرًا على المعاينة 6 ، ولكنه سيكون في المعاينة 7.

javiercnnphmuller واجهت نفس المشكلة ، حاولت إزالة الشهادات يدويًا وإعادة إنشائها باستخدام 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 فقط قم بإدراج sdks
ربما تكون قد تأثرت بـ global.json في هذا المجلد أو في أي مجلد رئيسي
من شأنه أن يؤدي إلى إعادة إنشاء نفس الشهادة القديمة

جرب التنظيف
check dotnet --version
ثم استخدم الأمر --trust

javiercn ماذا تقصد؟ أنا على Windows. 🙂

tebeco dotnet --version يطبع 3.0.100-preview6-012264 أيضًا.

تكمن المشكلة في أنك بحاجة إلى التأكد من ذلك عند تشغيل هذا الأمر بالفعل في تلك اللحظة

لا أستطيع حقًا المتابعة. ماذا علي أن أفعل؟ 😕

قم بتنظيف كامل
لا فكرة إذا كان إعادة التشغيل المطلوبة
ثم تحقق من dotnet version قبل إعادة تشغيل --trust واحد

هذا ما فعلته بالفعل (عدة مرات) 🙂 - لم ينجح بعد.

لدي برنامج VS2019 Preview 16.2 Preview 2 تم تثبيته حديثًا وهذا هو أول نواة ASP.NET مع مشروع Kestrel الذي أقوم بتشغيله وأواجه نفس المشكلة. لقد جربت أوامر التنظيف / الثقة لتحديث الشهادة بدون تغيير.

dotnet --version
3.0.100 معاينة 010184

هذا مشروع فارغ مع إضافة .ConfigureKestrel () دون أي تغييرات

Karaziox 3.0.100-preview-010184 SDK من 3.0.0-preview2 ، حيث لم يتم إصلاح هذه المشكلة حتى المعاينة 6. انتقل إلى 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 لا تزال المشكلة تحدث في المعاينة 6.

أعتقد أن الإصلاح في معاينة 7 ، وليس معاينة 6. 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 . تم حل بعض المشكلات المتعلقة بتجربة المستخدم والتي سيتم إصلاحها في المعاينة 7 ، ولكن يجب أن تعمل الشهادة إذا أعيد إنشاؤها في المعاينة 6.

مرحبا. نفس المشكلة بالنسبة لي 3.0.100-preview6-012264 (OS Win 8.1) ، قمت بتثبيت VS2019 16.1.1. تم التحقق من خلال dotnet new blazorhosted . حاولت تنظيف الشهادات (إغلاق chrome 75.0.3770.100) باستخدام أداة dotnet وثقت مرة أخرى ولكن دون مساعدة.

vmandic HTTP / 2 غير مدعوم على Win8.1 ، ستحتاج إلى إيقاف تشغيله.
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel؟view=aspnetcore-2.2#http2 -support

Tratcher ربما يجب علينا تعطيل HTTP2 افتراضيًا إذا كان يعمل على Win7 أو Win8

jkotalik فتح إصدار جديد لفرز من فضلك. من الناحية النظرية ، يمكن أن تعمل على Win8.1 ، هناك مشكلة في طلب cypher والحصول على شهادة تدعم بعض برامج التشفير البديلة.

نظرًا لأن المشكلة لم يتم حلها بعد عندما قمت بتثبيت Preview8 بالأمس ، فقد حاولت تشغيل كل من dotnet dev-certs https --clean و dotnet dev-certs https --trust مرة أخرى ، دون نجاح.

لقد اكتشفت أن Kestrel لا يزال يستخدم شهادة قديمة وعفا عليها الزمن ، لكنني لم أتمكن من تحديد موقع الشهادة المذكورة في مدير شهادات Windows. تبين أن الشهادات مخزنة مؤقتًا هنا: C:\Users\<user>\AppData\Roaming\ASP.NET\Https . كان هناك ثلاثة ملفات * .pfx ، من الواضح أن Kestrel لا يزال يستخدم أحدها.

استغرق الأمر مني ساعات حرفيًا للعثور على هذا. كنت أتوقع بالفعل أن الشهادات مخزنة مؤقتًا ، لكنني لم أتمكن من العثور عليها في مكان ما في الوثائق. هذا حقا يحتاج إلى التوثيق ، من فضلك.

أتخيل أن هذا لأنك تستخدم حاويات الرصيف. هذا هو المكان الذي يصدر فيه عامل الإرساء الشهادة لاستيرادها إلى الحاوية.

anurse يمكننا إضافة هذا إلى المستندات على ما أعتقد. لست متأكدًا من الآثار المترتبة على تنظيف هذا المجلد لأفراد عامل التحميل ، ولكن يمكننا أن نسألهم.

ما لا أريده هو إضافة هذا إلى الأداة ، حيث إنها تفاصيل تنفيذ أداة عامل الإرساء ولا علاقة لها بالأداة.

ومع ذلك ، لا أعتقد أننا بحاجة إلى تغيير وقت التشغيل هنا طالما أننا نقدم تفاصيل حول ما يجب القيام به إذا واجهت هذا الموقف في المستندات. لقد قدمت https://github.com/aspnet/AspNetCore.Docs/issues/13927 لتتبعها.

شكرا للتوضيح.

ستساعد إضافة هذا إلى الوثائق الأشخاص على توفير بعض الوقت. شكرا جزيلا!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات