2016-04-25 7 views
1

私は最近、自己署名証明書を作成し、SQL Server 2014での暗号化を有効:SSLキーの読み取り権限をSQL Serverに与える方法を教えてください。

self signed cert

問題は今、SQL Serverサービスが起動しないということです。

startup error

This articleからのアクセス許可の問題を識別します。SQL Serverサービスには、SSL証明書の秘密キーを読み取るために必要なアクセス許可がありません。

stuck on step 4

私はに示すウィンドウを持ち出す際に提案フォーマットに一致するグループまたはユーザー名がありません:

問題は、私は記事で提案された解決策のステップ4に貼り付けていますということです記事。

SQL Serverサービスが実行されているアカウントを特定する方法がありますか。SSL証明書を読み取るためのアクセス許可を与えることができますか?

完全に異なる解決策もありえます。

+0

SQL ServerのWindowsサービスに使用するアカウントはどれですか?私は 'c:\ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys'の証明書の秘密鍵にアクセスするのに問題があると思います。 MMCを開いて証明書スナップインを追加し、コンピュータを選択し、個人でSQL Server証明書を探し、証明書を選択して、「秘密キーの管理」コンテキストメニューを選択できます。その後、SQL Serverの実行に使用するアカウントにアクセス許可を与える必要があります。 – Oleg

+0

私は、アカウントの読み取りアクセスで十分であることに言及することを忘れないでください。 – Oleg

+0

SQL Serverサービスに使用するアカウントを見つける方法を教えてください。 – Jonah

答えて

1

あなたは、SQL ServerのWindowsサービスは、証明書と証明書に対応する秘密鍵(フォルダ%ProgramData%\Microsoft\Crypto\RSA\MachineKeysからファイル)を、読まなければならない、SQL ServerでTLSを使用する必要がある証明書を、指定した場合。問題は次のとおりです。SQL Server Configuration Managerが快適ではなく、すべての必要な作業が行われていません

まず、SQL Serverで使用されるアカウントをローカライズする必要があります。 1つはservices.mscを開始し、SQL Serverサービスのアカウントを見つける必要があります。アカウントへの秘密鍵にアクセス権を付与するには

enter image description here

:それは、典型的には下の写真の上のLocal Systemなどのアカウントでビルド、Network Service.\SQLServerのようなローカルまたはドメインアカウント、DOMAIN\SQLServerAccountまたはNT Service\NT Service\MSSQL$SQL2012などのサービスアカウントですmmcの証明書スナップインを使用できます。 1つはmms.exeを起動し、[ファイル]メニューの[スナップインの追加と削除]を選択し、[証明書]スナップインを選択し、ローカルコンピュータの[コンピュータアカウント]を選択します。次に、個人ストアのSSL証明書を選択し、コンテキストメニューの「秘密鍵の管理...」を使用する必要があります。

enter image description here

以上見つかっ、NT Service\NT Service\MSSQL$SQL2012のようにアカウントを追加するには、鍵と秘密鍵のアカウントに「読み取り」権限を設定するには:あなたが接続を確立したい場合

enter image description here

(クライアントとサーバーの両方が同じActive Directoryまたは信頼関係を介して接続されたディレクトリに属している必要があります)、SQLサーバー用のSPNを作成する必要があります。要件を正しく理解している場合は、がHTTPS経由でSQL Serverへの接続を削除することを許可します。(上記のすべての変更すること、もう1つはTLSを確立することができるようになりますSQL Serverサービスを再起動し、SQLログインを作成した後

enter image description here

:一つは、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

enter image description here

1が混合認証にWindows認証を変更することを忘れた場合は()、その後1は

のようなエラーになります

Login failed for user 'OlegKi'. (Microsoft SQL Server, Error: 18456)

enter image description here

1を行って、すべての上記の手順はTLS conneを確立できた場合例えば、SQL Management Studioを使用してction、しかし、1つは、まだいくつかのオプションを選択する必要があります。

enter image description here

一つは、 "暗号化接続"

enter image description here

をチェックする必要があり、追加の接続プロパティを設定する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

enter image description here

(Windowsアカウントとの接続)。

サーバーへのTLS接続の設定が実際には簡単ではなく、奇妙なエラーが発生する可能性があるため、上記のすべての手順を説明しました。直接的な説明で問題を解決する方法はありません。

+0

!私は10回upvoteすることができれば願っています。私は明日これを試してみます。 – Jonah

+0

@Jonah:ようこそ!最終結果についてお知らせください。以前の回答も更新しました。 **元のSSL証明書**を使用することもできますようにお願いいたします。自己署名証明書の問題は信頼です。すべてのクライアント**に、信頼されたルート証明書**を追加する必要があります。そのため、実際のシナリオではこの方法を使用しないでください。 – Oleg

関連する問題