あなたは、SQL ServerのWindowsサービスは、証明書と証明書に対応する秘密鍵(フォルダ%ProgramData%\Microsoft\Crypto\RSA\MachineKeys
からファイル)を、読まなければならない、SQL ServerでTLSを使用する必要がある証明書を、指定した場合。問題は次のとおりです。SQL Server Configuration Managerが快適ではなく、すべての必要な作業が行われていません。
まず、SQL Serverで使用されるアカウントをローカライズする必要があります。 1つはservices.msc
を開始し、SQL Serverサービスのアカウントを見つける必要があります。アカウントへの秘密鍵にアクセス権を付与するには
:それは、典型的には下の写真の上のLocal System
などのアカウントでビルド、Network Service
.\SQLServer
のようなローカルまたはドメインアカウント、DOMAIN\SQLServerAccount
またはNT Service\NT Service\MSSQL$SQL2012
などのサービスアカウントですmmcの証明書スナップインを使用できます。 1つはmms.exe
を起動し、[ファイル]メニューの[スナップインの追加と削除]を選択し、[証明書]スナップインを選択し、ローカルコンピュータの[コンピュータアカウント]を選択します。次に、個人ストアのSSL証明書を選択し、コンテキストメニューの「秘密鍵の管理...」を使用する必要があります。
以上見つかっ、NT Service\NT Service\MSSQL$SQL2012
のようにアカウントを追加するには、鍵と秘密鍵のアカウントに「読み取り」権限を設定するには:あなたが接続を確立したい場合
(クライアントとサーバーの両方が同じActive Directoryまたは信頼関係を介して接続されたディレクトリに属している必要があります)、SQLサーバー用のSPNを作成する必要があります。要件を正しく理解している場合は、がHTTPS経由でSQL Serverへの接続を削除することを許可します。(上記のすべての変更すること、もう1つはTLSを確立することができるようになりますSQL Serverサービスを再起動し、SQLログインを作成した後
:一つは、SQL Server認証を介してサーバに接続できるようにアクティブ混合セキュリティを持っています暗号化された)SQLサーバーへの接続。 SPNを作成せずにWindowsのアカウントを経由して接続しようとした場合には、以前に1がエラーを取得:
A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The target principal name is incorrect.) (Microsoft SQL Server, Error: -2146893022)
The target principal name is incorrect
1が混合認証にWindows認証を変更することを忘れた場合は()、その後1は
のようなエラーになります
Login failed for user 'OlegKi'. (Microsoft SQL Server, Error: 18456)
1を行って、すべての上記の手順はTLS conneを確立できた場合例えば、SQL Management Studioを使用してction、しかし、1つは、まだいくつかのオプションを選択する必要があります。
一つは、 "暗号化接続"
をチェックする必要があり、追加の接続プロパティを設定するTrustServerCertificate=true
通常、接続を確立するアプリケーションの接続文字列の一部としてEncrypt=true;TrustServerCertificate=true;
を使用しますion to SQLサーバー。上記の「接続の暗号化」チェックボックスでEncrypt=true
プロパティを設定します。プロパティの意味とオプションのさまざまな組み合わせの詳細については、the MSDN articleの「暗号化を有効にする」セクションを参照してください。
1は、上記のすべての手順を行うと、TrustServerCertificate=true
プロパティを設定せずに、「暗号化接続」をチェックした場合、1はエラーになります:私はすでに別の状況少しで述べ
A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The target principal name is incorrect.) (Microsoft SQL Server, Error: -2146893022)
The target principal name is incorrect
(Windowsアカウントとの接続)。
サーバーへのTLS接続の設定が実際には簡単ではなく、奇妙なエラーが発生する可能性があるため、上記のすべての手順を説明しました。直接的な説明で問題を解決する方法はありません。
SQL ServerのWindowsサービスに使用するアカウントはどれですか?私は 'c:\ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys'の証明書の秘密鍵にアクセスするのに問題があると思います。 MMCを開いて証明書スナップインを追加し、コンピュータを選択し、個人でSQL Server証明書を探し、証明書を選択して、「秘密キーの管理」コンテキストメニューを選択できます。その後、SQL Serverの実行に使用するアカウントにアクセス許可を与える必要があります。 – Oleg
私は、アカウントの読み取りアクセスで十分であることに言及することを忘れないでください。 – Oleg
SQL Serverサービスに使用するアカウントを見つける方法を教えてください。 – Jonah