1. ホーム
  2. c#

[解決済み] TLS 1.2 を使用するために .NET ウェブサービスを更新する

2022-08-08 03:26:27

質問

TLS 1.2を使用して、私の.NET Webサービスから、TLS 1.2を強制する別のWebサービスに接続する必要があります。 .NET 4.6 がデフォルトで TLS 1.2 を使用するというリソースを見つけたので、それが最も簡単なソリューションのように聞こえました。 サーバーの.NETフレームワークを更新し、再起動しました。 IISで.NET 4.6を使用してアプリケーションプールを作成しようとしましたが、4.0が唯一の選択肢でした。 そして、4.6は.NET 4.0への"in place"アップデートなので、まだ4.0と表示されると書いてあるものを発見しました。 それで、私は多分終わったと思いました。 しかし、私が得た無関係な理由のエラーページで、それは次のように言いました。 Microsoft .NET Framework Version:4.0.30319 と表示されたので、どうやら正常にアップグレードされていないようです。 アプリケーション プールが .NET 4.6 を使用していることを確認する方法、またはより一般的に TLS 1.2 を有効にする方法について、何かポインタがありますか?

どのように解決するのですか?

実は、TLS 1.2 を許可するために .NET ウェブサービスを 4.6 にアップグレードしたばかりなのです。

Artem が言っていることは、私たちが行った最初のステップでした。Web サービスのフレームワークを 4.6 に再コンパイルし、TLS 1.2 を有効にするためにレジストリ キーを変更しようとしましたが、これはうまくいきませんでした (接続はまだ TLS 1.0 のままでした)。また、マシン上で SLL 3.0、TLS 1.0、または TLS 1.1 を無効にしたくなかったので、他の Web サービスがこれを使用する可能性があり、レジストリ上の変更をロールバックしました。

私たちは実際に Web.Config ファイルを変更し、IIS に次のように伝えました。

以下は、私たちが web.config で追加した変更点 + .NET 4.6 での再コンパイルです。

<system.web>
    <compilation targetFramework="4.6"/> <!-- Changed framework 4.0 to 4.6 -->

    <!--Added this httpRuntime -->
    <httpRuntime targetFramework="4.6" />

    <authentication mode="Windows"/>
    <pages controlRenderingCompatibilityVersion="4.0"/>
</system.web>

そして、接続は TLS 1.2 に変更されました。IIS は現在 4.6 で Web サービスを実行しており (明示的に言われました)、4.6 はデフォルトで TLS 1.2 を使用するからです。