Windows および Linux での SSL/TLS 暗号化の構成
通信を保護したい場合はSSL/TLS暗号化を設定する必要があります。 NCache サーバーとクライアント、特にデータセキュリティが重要な本番環境や分散環境では、TLS証明書を作成または取得し、適切な証明書ストアに配置することから始まります。その後は、証明書の名前と拇印をメモし、提供されたコマンドまたは設定ファイルを使用してTLSを有効にし、すべてのサーバーとクライアントが同じ設定を使用していることを確認して再起動するだけです。 NCache 変更を安全に適用するためのサービス。
お願い
以下の手順に進む前に、キャッシュとクライアントのプロセスが停止していることを確認してください。
証明書の配置に関する考慮事項
Windows と Linux の両方における証明書の配置に関する考慮事項は次のとおりです。
テスト証明書(ルート証明書と中間証明書を含む)をお持ちの場合は、その証明書をローカル マシンの個人証明書と信頼済みルート証明書の両方に追加する必要があります。信頼済みルート証明書と個人証明書が別々にある場合は、個人証明書を個人証明書ストアに、CA ルート証明書を信頼済みルート証明書ストアにそれぞれ個別に追加する必要があります。相互TLSでない場合は、サーバー証明書を設定します。クライアントは、サーバー証明書を発行した認証局を信頼する必要があります。相互TLSの場合は、サーバー証明書とクライアント証明書の両方を設定します。サーバーはクライアント証明書の発行者を信頼し、クライアントはサーバー証明書の発行者を信頼する必要があります。
お願い
NCache は、証明書ストアに保存されている証明書を自動的に利用します。 正しいユーザー アカウントで起動すると、 NCache サービスは、適切な証明書ストアから関連する証明書を自動的に識別して使用します。
お願い
ブリッジ ノードとサーバー ノードからクライアントを実行しない場合、それらのノードにクライアント証明書をインストールする必要はありません。
お願い
5.3 SP5以降クライアントとサーバーは異なる証明書を持つことができます。
TLS証明書の選択と認証
サーバーの証明書の選択
Windowsでは、サーバーが起動すると、レジストリから構成済みの証明書のサムプリントを読み取ります。次に、ローカルマシンと現在のユーザーの信頼済みルートストア、続いてローカルマシンと現在のユーザーの個人ストアを確認します。サーバーは、最初に見つかった一致する証明書を選択します。その後、サーバーはこの選択された証明書のサムプリントを読み取り、クライアントと共有することで、安全な通信を実現します。
Linux では、設定された証明書が見つからない場合 My 格納、 NCache また検索します Root(根) 保管してください。
クライアントの証明書の選択
クライアントとサーバー間の通信で相互TLSが有効になっている場合、クライアントは認証のために設定済みのクライアント証明書をサーバーに提示します。
相互TLS認証
相互クライアント・サーバーTLSの場合、クライアントは設定済みの証明書をサーバーに提示します。サーバーは、クライアント証明書を発行した認証局を信頼する必要があります。
相互サーバー間TLS接続の場合、接続するサーバーは有効な証明書を提示する必要があり、各サーバーは他のサーバーが使用する証明書を発行した認証局を信頼する必要があります。
TLS 暗号化を構成する方法
TLS 暗号化を構成するには、以下を参照してください。
Windows マシンに TLS 証明書をインストールするには、次の手順に従う必要があります。
ステップ1 - マシンログイン: マシンにログインします。
ステップ 2 - 自己署名証明書を作成する: 作成(自己署名証明書は、 Microsoft WCF 証明書ドキュメント) するか、エクスポート可能な秘密キーを含む TLS 証明書を取得します。
重要
- 証明書は認証局 (CA) によって承認される必要があります。これを構成の一部として反映するには、「基本制約」セクションで以下が指定されていることを確認してください。 件名タイプ=CA に選出しました。 証明書の詳細。同様に、これは次の方法で実現できます。
-TextExtension値を持つ属性@("2.5.29.19={text}CA=true")次のコマンドを使用して証明書を生成する場合:New-SelfSignedCertificate. - 自己生成した証明書を使用することはお勧めしません。 製造 環境によっては使用できない場合もあります。ただし、テスト環境では使用できます。
ステップ3 - 証明書のインポート: 適切なマシンに証明書をインポートします。 Microsoft 証明書のインストール ガイド.
ステップ 4 - Microsoft 管理コンソールを開きます。 メディア掲載 勝利+ R、タイプ MMC、プレス Enter.
ステップ5 - 証明書の選択: Microsoft管理コンソール(MMC)では、 File メニューは、クリック スナップインの追加または削除。 選択する 証明書 利用可能なスナップインのリストから選択し、 追加
ステップ6 - アカウントを選択: からアカウントの種類を選択します 私のユーザーアカウント, サービスアカウント, コンピューターアカウント. あなたは選ぶことができます 私のユーザーアカウント または、証明書を配置した場所に基づいてローカル マシンにアクセスします。
ステップ 7 - 証明書を見つける: の左側のペインで、 MMC、展開する 証明書 ナビゲートします 現在のユーザー > 個人 > 証明書 リストされている TLS 証明書を見つけます。 クライアント認証 として 意図された目的 ダブルクリックします。証明書の配置については、 証明書の配置に関する考慮事項.
設定済みのユーザーアカウントに権限を付与する必要があることに注意してください(マシンの管理者以外証明書の秘密鍵にアクセスするため。
- 証明書を右クリックして、以下を選択します。 すべてのタスク -> 秘密鍵の管理

- 権限ウィンドウで、 加えます 追加をクリックして必要なユーザーアカウントを付与します 読み取り権限「適用」をクリックしてください。

お願い
設定したユーザーアカウントに証明書の秘密鍵にアクセスする権限がない場合、 NCache クライアントがセキュア通信の初期化中に証明書を取得できず、TLSハンドシェイクの失敗と実行時例外が発生します。
ステップ8 - 拇印を取得する: 証明書ダイアログボックスで、 Details タブで見つける 拇印それをクリックして、ボックスから16進数文字をコピーします。証明書のサムプリントにコロン(:)や余分なスペースがある場合は削除します。サムプリントは次の手順で必要になるため、保存してください。
ステップ9 - 証明書名をコピーします。 同様にコピーします 証明書名 (CN) をクリックすると 件名 プロパティを設定し、その後に続くもののみをコピーする CN = この場合は「Example」です。証明書名は次の手順で必要になるため、保存しておいてください。
ステップ 10 - サービスが実行されていることを確認します。 あなたが NCache サービスは、証明書のインポートに使用されたのと同じユーザーで実行されています。
ステップ11 - TLSセキュリティを有効にする: TLSセキュリティを有効にするには、次のPowerShellコマンドレットを使用します。 有効にする-NCacheTLS コマンドを実行する際は、手順 8 と 9 で保存したサーバーの証明書名と拇印を必ず指定してください。同様に、上記の手順に従ってクライアント証明書を追加できます。
その Enable-NCacheTLS コマンドレットは、 NCache マシンにインストールされています。クライアントマシンでは NCache インストールされていない場合は、TLS を手動で設定してください。 tls.ncconf 付属のファイル NCache NuGetパッケージ.
以下の例は、クライアントとサーバー間、およびサーバーとサーバー間の通信の両方でTLSを有効にする方法を示しています。
非相互TLSの設定
非相互TLSは、接続するクライアントまたはサーバーがクライアント証明書を提示する必要なく、クライアントとサーバー間およびサーバー間の通信を暗号化します。
Enable-NCacheTLS -Node "20.200.20.39,20.200.20.40" -ServerCertificateCN "Example" `
-ServerCertificateThumbprint "596846ab6bdd9edb03cdfbdfa1aa7b0b05e744a6" `
-ServerToServerCommunication -ClientServerCommunication
通常のTLSの場合(相互TLSなし) tls.ncconf 以下のタグが含まれています。
<tls-info>
<server-certificate-cn>certificate-name</server-certificate-cn>
<server-certificate-thumbprint>your-thumbprint</server-certificate-thumbprint>
<client-certificate-cn></client-certificate-cn>
<client-certificate-thumbprint></client-certificate-thumbprint>
<enable>true</enable>
<enable-client-server-tls>true</enable-client-server-tls>
<enable-server-to-server-tls>true</enable-server-to-server-tls>
<use-mutual-tls-for-client-to-server>false</use-mutual-tls-for-client-to-server>
<use-mutual-tls-for-server-to-server>false</use-mutual-tls-for-server-to-server>
<protocol-version>tls12</protocol-version>
</tls-info>
相互TLSの設定
相互TLSでは、サーバー証明書とクライアント証明書の両方が必要です。各側は、相手側が提示した証明書を認証します。
Enable-NCacheTLS -Node "20.200.20.39,20.200.20.40" -ServerCertificateCN "Example" `
-ServerCertificateThumbprint "596846ab6bdd9edb03cdfbdfa1aa7b0b05e744a6" `
-ClientCertificateCN "MyClientCert" `
-ClientCertificateThumbprint "1234567890EFGHIJKL" `
-ServerToServerCommunication -ClientServerCommunication `
-UseMutualTLSForClientToServer True -UseMutualTLSForServerToServer True
相互TLSの場合、 tls.ncconf 以下のタグが含まれています。
<tls-info>
<server-certificate-cn>certificate-name</server-certificate-cn>
<server-certificate-thumbprint>your-thumbprint</server-certificate-thumbprint>
<client-certificate-cn>certificate-name</client-certificate-cn>
<client-certificate-thumbprint>your-thumbprint</client-certificate-thumbprint>
<enable>true</enable>
<enable-client-server-tls>true</enable-client-server-tls>
<enable-server-to-server-tls>true</enable-server-to-server-tls>
<use-mutual-tls-for-client-to-server>true</use-mutual-tls-for-client-to-server>
<use-mutual-tls-for-server-to-server>true</use-mutual-tls-for-server-to-server>
<protocol-version>tls12</protocol-version>
</tls-info>
さまざまなシナリオでTLSを有効にする例については、以下を参照してください。 有効にする-NCacheTLS ページで見やすくするために変数を解析したりすることができます。
お願い
Status ProtocolVersion 上記のコマンドでパラメータが指定されていない場合、デフォルトのプロトコルが使用されます。 TLS 1.2.
重要
クラスターの接続性と均一性を確保するために、すべてのサーバー ノードとクライアント ノードで構成値が一貫していることを確認してください。
ステップ12 - サービスとプロセスを再起動します。 必要なプロパティを設定したら、キャッシュ、クライアント プロセス、および NCache サービス。 ことを確認してください。 NCache サービスは、証明書のインポートに使用されたのと同じユーザーで実行されています。
お願い
証明書を有効にしたら、次のことを確認してください。
- その NCache サービスは、証明書のインポートに使用されたのと同じユーザーで実行されています。
- すべてのクライアントアプリケーションは64ビットマシンで実行されます。
TLSを介したクライアント接続の成功を確認する
TLSを介したクライアント接続の成功を確認するために、 テストストレス PowerShell を使用したコマンドレット。次の例では、Test-Stress をキャッシュに対して実行します。 デモキャッシュ.
Test-Stress -CacheName demoCache
これは、Microsoft ネットワーク モニターを使用して確認することもできます。 TLS が有効になっている場合、 プロトコル名 プロセスの PowerShellの このコマンドを実行すると TLS.
お願い
UseMutualTLSForClientToServer, EnableBridgeTLS, EnableClientServerTLS, EnableServerToServerTLS, UseMutualTLSForServerToServer 場合は動作しません Enable はtrueに設定されていません tls.ncconf個別に有効になっているかどうかに関係なく、有効になります。
トラブルシューティング
TLS を介したクライアント接続は、次の理由により失敗する可能性があります。
- レジストリエントリが欠落している場合、接続が失敗する可能性があります。 すべてのエントリがレジストリに作成されていることを確認してください。
- Status NCache サービスが証明書のインストールに使用したアカウントとは異なるユーザーアカウントで実行されている場合、サービスが証明書にアクセスできない可能性があります。
- 設定された証明書のサムプリントが間違っているか、インストールされている証明書と一致しない場合、接続に失敗します。
- クライアントの信頼されたルートにサーバーの CA がない場合。
- If
UseMutualTLSForClientToServerorUseMutualTLSForServerToServerが true であり、サーバーの信頼されたルートにはクライアントまたは他のサーバーの CA がありません。 - プロパティの値がクライアント マシンとサーバー マシンで同じでない場合、「復号化操作が失敗しました」というエラーが表示されます。