Asp.Net Core3.1でTLS1.2を有効にする方法

Aug 17 2020

Asp.Net Core3.1プロジェクトに取り組んでいます。私はローカルでテストしています。私はエラーが発生し始めました

接続が完全に保護されていないこのサイトは古いセキュリティ構成を使用しているため、このサイトに送信されるときに情報(パスワード、メッセージ、クレジットカードなど)が公開される可能性があります。NET :: ERR_SSL_OBSOLETE_VERSION

このサイトのロードに使用された接続はTLS1.0またはTLS1.1を使用していましたが、これらは非推奨であり、将来無効になります。無効にすると、ユーザーはこのサイトを読み込めなくなります。サーバーはTLS1.2以降を有効にする必要があります。

以下のように、Program.csからTLS1.2を有効にしました-

public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.ConfigureKestrel(serverOptions =>
                {
                    serverOptions.ConfigureHttpsDefaults(co =>
                    {
                        co.SslProtocols = SslProtocols.Tls12;
                    });
                }).UseStartup<Startup>();
            });

しかし、それでも同じエラー。

この問題を解決する方法を教えていただけますか?

回答

4 Vikram Sep 02 2020 at 19:19

エラーを修正するために、私は解決策を試しました。それは助けにはならなかった。私が試した方法は、著者によると、ASP.NET Core2.0でのみ機能するように思われる方法をここで提案しました。

構成オプションを調べたところ、デフォルトでASP.NET Core3.1が要求にTLS1.1とTLS1.2を使用していることわかりました。したがって、コードの終わりから何もする必要はありません。

最終的に、私は共有する記事に出くわしました-

Windows7はTLS1.1およびTLS1.2をサポートしています。ただし、これらのプロトコルバージョンはデフォルトでは有効になっていません。Windows 8以降では、これらのプロトコルはデフォルトで有効になっています。

したがって、これがエラーの本当の原因でした。レジストリエディタからTLS1.2を有効にすることで、この問題を修正しました。Microsoftでさえ同じ解決策を提案しました。

それが他の誰かの時間を節約することを願っています。

1 RoarS. Aug 18 2020 at 00:34

実行してください

dotnet dev-certs https --trust

Program#CreateHostBuilderは次のようになります(デフォルト)

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });