web-dev-qa-db-ja.com

.NET Core SSL-テンプレートがブラウザーにのみ表示されるPR_CONNECT_RESET_ERROR(Firefox)

「HTTPSの構成」をオンにしてVS 2017テンプレートダイアログから.NET Core Webアプリケーションのみを作成しました。

使った

dotnet dev-certs https --trust

プロンプトを確認しました。 MMCで確認しました。localhost証明書がCurrentUser/Myに存在することを確認しました。

アプリケーションを実行すると、Firefoxにのみ表示されます(正確な英語の翻訳はわかりません)。

Https // localhost:44371への接続中にエラーが発生しましたPR_CONNECT_RESET_ERROR

Chromeは次のエラーも表示します

ERR_CONNECTION_RESET

Windowsファイアウォールも無効にしましたが、結果は同じでした。

プロジェクトのデバッグプロパティで[SSLを有効にする]をオフにすると、サイトは適切に表示されますが、HTTPSは表示されません。

誰かが間違っている可能性があること、またはGithubのどこで証明書を検索するコードを見つけることができるかを知っている人はいますか?


更新1:

IIS Express)を使用してVisual Studio(2017)からアプリケーションを起動することから、コンソールウィンドウを表示してKestrelに切り替え、さらに何かを教えました:

info: Microsoft.AspNetCore.Server.Kestrel[20]
      Connection id "0HLOLGRVN8U0U" request processing ended abnormally.
System.IO.IOException: The decryption operation failed, see inner exception. ---
> System.ComponentModel.Win32Exception: Beim Verarbeiten des Zertifikats ist ein
 unbekannter Fehler aufgetreten
   --- End of inner exception stack trace ---
   at System.Net.Security.SslStreamInternal.ReadAsyncInternal[TReadAdapter](TRea
dAdapter 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 System.IO.Pipelines.Pipe.DefaultPipeReader.GetResult(Int16 token)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.Proces
sRequests[TContext](IHttpApplication`1 application)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.Proces
sRequestsAsync[TContext](IHttpApplication`1 application)

System.ComponentModel.Win32Exception:Beim Verarbeiten des Zertifikats ist ein unbekannter Fehler aufgetreten

翻訳されます

System.ComponentModel.Win32Exception:証明書の処理中に不明なエラーが発生しました

Kestrel Firefoxでは、少なくとも自己署名証明書を信頼できるページが表示され、ページが表示されます。 (ただし、httpsの場合は5001、httpの場合は5000の異なるポートにあります)。 Chromeは証明書を信頼するように要求せず、期待どおりに動作し続けます。

証明書またはIIS Express for meに問題があるようです。


見つかりました その1つ これは別の問題ですが.

5
monty

Firefoxのabout:configでは、network.security.ports.banned.override設定にポート44371を含めましたか?

network.security.ports.banned.overrideを検索します。存在しない場合は、[新規]> [文字列]で作成し、値をカンマ区切りのポート番号のリストとして定義します(例:80,443,44371)。

REF: network.security.ports.banned.override

===編集===

また、Firefoxのabout:configには、最小/最大TLSバージョンオプションがあります。これらは、「受け入れ可能な」バージョンを提供していない場合に、Firefoxがhttps:// Webサイトに接続する方法を制限する可能性があります。

  • security.tls.version.max
    • デフォルト:3(Firefoxバージョン60まで)
    • デフォルト:4(Firefoxバージョン61以降)。
  • security.tls.version.min
    • デフォルト:1。

どこ:

  • 1 = TLS 1.0
  • 2 = TLS 1.1
  • 3 = TLS 1.2
  • 4 = TLS 1.3(Firefox 61の新機能)

REF: security.tls.version。*

SSL/TLSのバージョンをテストできますIISおよびIIS Expressは、OpenSSLコマンドラインツールを使用して、単一のTLSバージョン、例:

  • TLS 1.0:openssl s_client -debug -Host 127.0.0.1 -port 44371 -tls1
  • TLS 1.1:openssl s_client -debug -Host 127.0.0.1 -port 44371 -tls1_1
  • TLS 1.2:openssl s_client -debug -Host 127.0.0.1 -port 44371 -tls1_2
1
AlwaysLearning

私も同じ問題を抱えていました。マイクロソフトによるトラブルシューティングの推奨事項をすべて試しましたが、何の助けにもなりませんでした。次に、IIS Expressプログラムを修復しました。この問題は修正されました。 enter image description here

0
user3172616