Windows および Linux での SSL/TLS 暗号化の構成
TLS は、TLS よりも低いパフォーマンス オーバーヘッドでネットワーク セキュリティを提供します。 NCache データ暗号化。 にとって不可欠なものです NCache サーバーとクライアント、異なるサーバー、キャッシュ、ブリッジ間でのデータ共有を必要とするアクティビティ。 TLS を選択的に使用して、ニーズに基づいて特定のデータ転送を保護できます。 仕組みについて詳しくは、 こちら.
Note
次の TLS 構成は、5.3 SP2 以降でのみ機能します。
これらの考慮事項を理解することで、 NCache TLS暗号化はスムーズに進みます。
Note
以下の手順に進む前に、キャッシュとクライアントのプロセスが停止していることを確認してください。
TLS 暗号化を構成する方法
NCache には、サーバー マシンとクライアント マシンの両方に 2 つの主要な場所があり、そこから認証証明書を取得できます。 個人店 と 信頼されたルート (TR) ストア。個人ストアに配置された証明書にはローカル マシン上のすべてのユーザーがアクセスできますが、ユーザー ストアにある証明書には特定のユーザーのみがアクセスできます。 NCache 特定のユーザーで実行されている場合にのみアクセスできます。具体的な店舗は4つありますが、 NCache 認証証明書を取得できます。
- 信頼されたルート: ローカルマシン
- 信頼されたルート: 現在のユーザー
- 個人: ローカルマシン
- 個人: 現在のユーザー
Note
アクセス制限を回避するために、認証証明書をマシン レベルに配置します。
サーバーが起動すると、レジストリに保存されている拇印を含む証明書の読み取りが開始されます。前述の 4 つのストア、つまりローカル マシンと現在のユーザーの両方の信頼されたルート (TR)、次にローカル マシンと現在のユーザーの両方の個人の証明書を体系的にチェックします。サーバーは、この順序で最初に見つかった証明書を選択します。その後、サーバーはこの選択された証明書をサムプリントから読み取り、クライアントと共有することで、安全な通信が容易になります。このプロセスにより、サーバーは起動時に利用可能なストアから認証用の適切な証明書を確実に取得します。
TLS 暗号化を構成するには、以下を参照してください。
Windows マシンに TLS 証明書をインストールするには、次の手順に従う必要があります。
ステップ-1: マシンにログインします。
ステップ-2: 作成 (詳細に従って自己署名証明書を作成できます) こちら) するか、エクスポート可能な秘密キーを含む TLS 証明書を取得します。
重要
- 証明書は認証局 (CA) によって承認される必要があります。これを構成の一部として反映するには、「基本制約」セクションで以下が指定されていることを確認してください。 件名タイプ=CA セクションに 証明書の詳細。同様に、これは次の方法で実現できます。
-TextExtension
値を持つ属性@("2.5.29.19={text}CA=true")
次のコマンドを使用して証明書を生成する場合:New-SelfSignedCertificate
. - 自己生成した証明書を使用することはお勧めしません。 製造 環境。ただし、テスト環境では使用できます。
ステップ-3: 詳細に従って証明書を適切なマシンにインポートします。 こちら.
ステップ-4: イベント 勝利+ R、タイプ MMC、プレス 入力します.
ステップ-5 MMCでは、 File メニューは、クリック 追加/削除スナップインを。 選択する 証明書 利用可能なスナップインのリストから選択し、 Add
ステップ-6: からアカウントの種類を選択します 私のユーザーアカウント, サービスアカウント, コンピューターアカウント. あなたは選ぶことができます 私のユーザーアカウント または、証明書を配置した場所に基づいてローカル マシンにアクセスします。
ステップ-7: の左側のペインで、 MMC、展開する 証明書 ナビゲートします 現在のユーザー > 個人 > 証明書 リストされている TLS 証明書を見つけます。 クライアント認証 として 意図された目的 ダブルクリックします。証明書の配置について詳しくは、「証明書の配置」を参照してください。 証明書の配置に関する考慮事項.
ステップ-8: 「証明書」ダイアログボックス、「詳細」タブをクリックして、 拇印。それをクリックし、ボックスから 16 進数の文字をコピーします。証明書の拇印にコロン (「:」) または余分なスペースがある場合は、それを削除します。以降の手順で必要になるため、サムプリントを保存します。
ステップ-9: 同様にコピーします 証明書名 (CN) をクリックすると 件名 プロパティを設定し、その後に続くもののみをコピーする CN = この場合は「例」です。以降の手順で必要になるため、証明書名を保存します。
ステップ-10: あなたが NCache サービスは、証明書のインポートに使用されたのと同じユーザーで実行されています。
ステップ-11: 以下を使用してください PowerShellコマンドレット TLS セキュリティを有効にします。ここで使用されるプロパティの詳細については、以下で説明する証明書要素を参照してください。実行すると、 Enable-NCacheTLS
コマンドでは、必ず指定してください CertificateName
および CertificateThumbprint
手順 8 と 9 で保存したもの。
Enable-NCacheTLS -Node "20.200.20.39,20.200.20.40" -CertificateName "Example" -CertificateThumbprint "596846ab6bdd9edb03cdfbdfa1aa7b0b05e744a6" -ClientServerCommunication -UseMutualTLSForClientToServer true
- 上記のコマンドは、次の場合にのみ機能します。 NCache クライアントマシンにインストールされます。そうでない場合は、次のコマンドを使用して TLS を手動で有効にする必要があります。 tls.ncconf ファイルは、 NCache Windows の NuGet パッケージは次のとおりです。
<tls-info>
<certificate-name>certificate-name</certificate-name>
<certificate-thumbprint>your-thumbprint</certificate-thumbprint>
<enable>false</enable>
<enable-client-server-tls>false</enable-client-server-tls>
<use-mutual-tls-for-client-to-server>false</use-mutual-tls-for-client-to-server>
</tls-info>
重要
クラスターの接続性と均一性を確保するために、すべてのサーバー ノードとクライアント ノードで構成値が一貫していることを確認してください。
ステップ-12: 必要なプロパティを設定したら、キャッシュ、クライアント プロセス、および NCache サービス。 ことを確認してください。 NCache サービスは、証明書のインポートに使用されたのと同じユーザーで実行されています。
Note
証明書を有効にしたら、次のことを確認してください。
- NCache サービスは、証明書のインポートに使用されたのと同じユーザーで実行されています。
- すべてのクライアントアプリケーションは64ビットマシンで実行されます。
証明書の配置に関する考慮事項
Java クライアントが Windows マシン上で実行されている場合、証明書の管理に関して重要な考慮事項が発生します。具体的には、 Java ローカル マシン証明書の使用をネイティブにサポートしていません。代わりに、現在のユーザーから証明書を取得します。これは、クライアントが相互 TLS 用に構成されている場合、クライアントの証明書と関連する発行者の証明書の両方が現在のユーザーの証明書ストアに存在する必要があることを意味します。相互 TLS が無効になっているシナリオでは、要件が変わります。この場合、現在のユーザーの証明書ストアに存在する必要があるのは、認証局 (CA) 証明書のみです。
Note
NCache は、証明書ストアに保存されている証明書を自動的に利用します。 正しいユーザー アカウントで起動すると、 NCache サービスは、適切な証明書ストアから関連する証明書を自動的に識別して使用します。
重要
Windowsバンドルされた証明書 (ルート証明書と中間証明書を含む) がある場合は、ローカル マシンの個人ルートと信頼されたルートの両方に証明書を追加する必要があります。別個の信頼されたルート証明書と個人証明書がある場合は、それらを個別に追加する必要があります。つまり、個人証明書を個人ストアに追加し、CA ルート証明書を信頼されたルート ストアに追加する必要があります。
TLSを介したクライアント接続の成功を確認する
- TLSを介したクライアント接続の成功を確認するために、 ストレステスト PowerShell を使用したコマンドレット。次の例は実行されます
Test-Stress
名前の付いたキャッシュ上 デモキャッシュ.
Test-Stress -CacheName demoCache
これは、Microsoft ネットワーク モニターを使用して確認することもできます。 TLS が有効になっている場合、 プロトコル名 プロセスの PowerShellの 実行中 Test-Stress
なります TLS.
Note
UseMutualTLSForClientToServer
, EnableBridgeTLS
, EnableClientServerTLS
, EnableServerToServerTLS
, UseMutualTLSServerToServer
場合は動作しません Enable
個別に有効になっているかどうかに関係なく、true として設定されていません。
証明書の要素
前述の構成のいずれかを採用するには、TLS 証明書を認証局 (CA) によって付与するか、ユーザーによって自己署名して、暗号化されたデータ転送を保証します。 これらの証明書には通常、次の情報が含まれます。
計測パラメータ | データ型 | Description | デフォルト値 |
---|---|---|---|
-CertificateName* |
<String> |
CertificateName パラメーターは、暗号化に使用される TLS 証明書の名前を指定します。 これは、安全な通信のために必要な TLS 証明書に関連付けられた一意の名前を提供します。 | - |
-CertificateThumbprint* |
<String> |
TLS 証明書の信頼性と整合性を保証するために、TLS 証明書の一意の拇印を指定します。 安全な通信のために必要な TLS 証明書に関連付けられたフィンガープリント値を提供します。 | - |
-ClientServerCommunication |
<SwitchParameter> |
クライアント ノードとサーバー ノード間の通信で TLS 暗号化を有効にします。 | × |
-ServerToServerCommunication |
<SwitchParameter> |
クラスター内のサーバー ノード間の通信に対して TLS 暗号化を有効にします。 | × |
-BridgeCommunication |
<SwitchParameter> |
間の通信のみに TLS 暗号化を有効にします。 NCache キャッシュをブリッジし、地理的に分離します。 ユーザーがこのセキュリティを拡張してブリッジ ノード間の通信も含めたい場合は、 ServerToServerCommunication フラグ。 もし BridgeCommunication true です。必ず有効にしてください ClientServerCommunication 。 現在、 NCache 両方のブリッジ ノードで同じ証明書を使用する必要があります。 |
× |
-UseMutualTLSForClientToServer |
<String> |
有効なクライアント TLS 証明書の要件を強制します。 有効にすると、サーバーに接続するクライアント ノードは、認証のために有効な TLS 証明書を提示し、その証明書の認証局がサーバーの信頼されたルートに存在する必要があります。 | × |
-UseMutualTLSForServerToServer |
<String> |
通信中に有効なサーバー TLS 証明書の要件を強制します。有効にすると、最初のサーバーに接続するサーバー ノードは、認証のために有効な TLS 証明書を提示する必要があります。さらに、信頼されたルートに存在するには、すべてのサーバーが互いの認証局を持っている必要があります。 | ◯ |
-Node |
<String> |
TLS 設定が適用されるキャッシュ サーバー、キャッシュ クライアント、またはブリッジ ノードの XNUMX つ以上の IP アドレスを指定します。 IP アドレスのカンマ区切りのリストを指定して、目的のノードで TLS 設定を有効にします。 クライアント ノードが次のものを備えていることを確認してください。 NCache インストールされているものが含まれます。 のために NCache インストールを行わないクライアントの場合は、手動構成を使用します。 | - |
-Credentials |
<pscredential> |
指定された操作へのアクセスを承認するために必要なユーザー資格情報を指定します。 これらの資格情報は、ノードで適切な権限を持つユーザーに属する必要があります。 | - |
トラブルシューティング
TLS を介したクライアント接続は、次の理由により失敗する可能性があります。
- レジストリエントリが欠落している場合、接続が失敗する可能性があります。 すべてのエントリがレジストリに作成されていることを確認してください。
- If NCache CertificateThumbprint プロパティに指定された拇印の値が正しくない場合、サービスのユーザー資格情報は、証明書のインポートに使用されたユーザーとは異なります。
- クライアントの信頼されたルートにサーバーの CA がない場合。
- If
UseMutualTLSForClientToServer
orUseMutualTLSForServerToServer
が true であり、サーバーの信頼されたルートにはクライアントまたは他のサーバーの CA がありません。 - プロパティの値がクライアント マシンとサーバー マシンで同じでない場合、「復号化操作が失敗しました」というエラーが表示されます。