鍵管理

構成サーバーは、対称(共有)キーまたは非対称キー(RSA キーペア)を使用できます。非対称の選択はセキュリティの点で優れていますが、application.properties で構成する単一のプロパティ値であるため、対称キーを使用する方が便利な場合がよくあります。

対称鍵を構成するには、encrypt.key を秘密文字列に設定する必要があります(または、ENCRYPT_KEY 環境変数を使用してプレーンテキスト構成ファイルに入れないようにします)。

クラスパスに spring-cloud-starter-bootstrap を含めるか、システムプロパティとして spring.cloud.bootstrap.enabled=true を設定する場合は、bootstrap.properties で encrypt.key を設定する必要があります。
encrypt.key を使用して非対称キーを構成することはできません。

非対称キーを構成するには、キーストアを使用します(たとえば、JDK に付属の keytool ユーティリティによって作成されたもの)。キーストアのプロパティは encrypt.keyStore.* であり、* は次のようになります。

プロパティ 説明

encrypt.keyStore.location

Resource の場所が含まれています

encrypt.keyStore.password

キーストアのロックを解除するパスワードを保持します

encrypt.keyStore.alias

ストア内で使用するキーを識別します

encrypt.keyStore.type

作成する KeyStore の型。デフォルトは jks です。

暗号化は公開鍵を使用して行われ、復号化には秘密鍵が必要です。原則として、暗号化のみを行う場合(および秘密鍵を使用してローカルで値を復号化する準備ができている場合)は、サーバーで公開鍵のみを構成できます。実際には、ローカルで復号化を実行したくない場合があります。これは、キー管理プロセスをサーバーに集中させるのではなく、すべてのクライアントに分散させるためです。一方、構成サーバーが比較的安全でなく、暗号化されたプロパティを必要とするクライアントがほんの一握りである場合は、便利なオプションになる可能性があります。