背景
PCI-DSSコンプライアンスが必要なので、TLS1.0を無効にする必要があります。私のテスト環境では、SQL Server 2014 SP1とCU 1( this post による)およびIIS 8がすべて同じボックスにある)を使用しています。 Nartac IIS Crypto tool to TLS1.0を無効にして再起動しました。それが私のトラブルの始まりです。
SQLエージェントが起動せず、SSMSがサーバーに接続できず、Webサイトが機能しなくなります。 (幸い、私はテストサーバーへのリモートデスクトップ接続をまだできます。)
次に、 Microsoftの記事 を読みます。これは、基本的にSQL ServerにTLS1.0が必要であると述べています。
質問
これを修正できますか? (SQL Serverのテスト用に別のボックスが必要なのでしょうか?)
問題は解決しました。すべてのハードルがDBAが通常遭遇するものであるかどうかはわかりませんが、人々はしばしば問題全体を解決することに興味があり、これは他の人が遭遇する可能性のある一連の問題(問題のさまざまな原因を考えると)のように思えたため、ここに進みます:
IISを別のボックスに配置します。これにより、IISでSQL Serverが有効になっているときにTLS1.0を無効にすることができます。
IISボックスを使用して John LourosのPowerShellスクリプト を使用してTLS1.0を無効にします(NARTACのIISCryptoツールではありません)。
この段階でSystem.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.
を入手し始めました。 FIPS準拠は 。NETアプリではデフォルトでオン であるため、他の人がこれに遭遇する可能性があります。 FIPSに準拠する必要がなかったため、web-configに<enforceFIPSPolicy enabled="false"/>
を この投稿 のように追加してみましたが、問題は解決しませんでした。次に、 この投稿 からの承認された回答に従いました。後で問題が発生し、これらの両方の変更を元に戻しましたが、FIPSエラーは再発しませんでした。申し訳ありませんが、非常に啓発的です。
次に、System.Security.Cryptography.CryptographicException
を取得しました。これは、提案されているようにweb.configを変更して修正しました here 。 <machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
(これは この古いMicrosoft KB記事 で提案されていました)を<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="HMACSHA256" decryption="AES" />
に置き換えました。
その後-万歳! -すべてが再び機能していました。
編集
私は Aaron Bertrandの投稿 を読みます。これはこの答えを参照しています。そこから来る人のために、私のテストはbeforeMicrosoftによる2016年1月後半のTLS1.2サポートの発表 であったことを指摘しておきます。私は以前にその発表から得ていなかったすべての更新と同じボックスにIISおよびSQLを使用して)を再テストし、私の発見をここに投稿します。
(IISとSQLを同じ場所に配置できることについては、特に楽観的ではありません。なぜなら、私が読んだものから、SQL Server 2014ですでにTLS1.1およびTLS1.2のサポートがあったためです。 SP1 CU1があるため、これらの最新の更新は理論的に新しいものを追加していません。また、IISおよびSQLが別のボックスにあるため、古いTLS1.1サポートを必要としないSQL Serverのバージョン。誰かがそれについて何か考えを持っているなら、私はそれらを聞いてうれしいです。)