Spring Cloudは、分散システムの一般的なモデルを迅速に構築するためのさまざまなツールを開発者に提供します。例:構成管理、サービスの発見、オフルーティング、インテリジェントルーティング、マイクロエージェント、制御バス、1回限りのトークン、グローバルロック、意思決定キャンペーン、分散セッション、クラスターステータスなど。分散システムの支援には、Spring Cloudを使用する開発者がこれらのパターンを迅速に確立することができます。開発者のパーソナルコンピューターであろうと生産環境であろうと、クラウドプラットフォームであろうと、分散環境に適しています。
特性
Spring Cloudは、典型的なソリューションと、箱から出して良いスケーラブルな方法を提供することに焦点を当てています。
導入
RSAの非対称暗号化には非常に強力なセキュリティがあります。 HTTPS SSL暗号化は、この方法を使用してHTTPS要求を暗号化および送信します。 RSAアルゴリズムには、暗号化と復号化のための秘密鍵と公開キーが含まれるため、非対称暗号化と呼ばれます。秘密鍵と公開キーは相互運用可能です。つまり、秘密鍵で暗号化されたものは公開キーで復号化でき、公開キーで暗号化されたものは秘密鍵で復号化できます。従来の一方向認証は、暗号化には公開キーのみを使用し、秘密鍵を持つもののみが復号化できます。たとえば、Webサーバーには、プライベートキーとパブリックキーのペアがあります。ブラウザのクライアントは、サーバーの公開キーを保存します。クライアントがサーバーにデータを送信する必要がある場合、サーバーの公開キーを使用して暗号化します。次に、サーバーがデータを受信すると、秘密鍵を使用してそれを復号化します。クライアントがサーバーが実際のサーバーであるかどうかを確認すると、サーバーが提供する公開キーをローカルで保存する公開キーと比較します。それが一貫している場合にのみ、サーバーの信頼性を検証できます。
Config Serverでは、暗号化要件が高いデータの一部を暗号化およびRSAアルゴリズムを使用して復号化できます。
プロジェクトソースコード
Giteeコードクラウド
テストキーストアを生成します
jdkに付属のキートールツールを使用してキーストアを生成する必要があります。キーストアは、秘密のキー情報を保存し、次のコマンドラインを使用します。
keytool -genkeypair -alias config -server -key -keyalg rsa -dname "cn = config server、ou = xuqian、o =私自身の会社、l = beijing、s = beijing、c = cn" -keypass changeitit
-keystore server.jks -storepass changeit
-genkeypairパラメーターは、一対のパブリックキーとプライベートキーを生成します。
-Aliasは、同じキーストアの異なるキーを区別するために使用されるキーのエイリアスを指定します。
-keyalgキーを生成するためのアルゴリズムを指定し、デフォルトのRSAがここで使用されます
-dnameキーの識別を確認するために、共通名、つまりCNを指定します。すべてのアイテムはカスタムパラメーター、ouはユニット名、oは組織名、lは都市、sは州/州、cは国です
-keypassはキーのパスワードです
-KeyStoreは、キーストアのファイル名です
-StorePassパスワードにアクセスキーストア
上記のツールは、server.jksというキーストアに生成された秘密キーを保存します。これまでのところ、プライベートキーのみを生成しています。 Spring Cloud Config Serverは、提供するキー情報に基づいて、毎回プログラムを使用して公開キーを生成します。以下のソースコードを参照してください。
org.springframework.security.rsa.crypto.keystorekeyfactory:
public keypair getkeypair(string alias、char [] password){try {synchronized(lock){if(store == null){synchronized(lock){//構成= keystore.getinstance( "jks")によって提供されるキーストアファイルアドレスとパスワードに基づいてキーストアファイルアドレスとパスワードを取得します。 store.load(resource.getInputStream()、this.password); }}} //構成rsaprivatecrtkey key =(rsaprivatecrtkey)store.getKey(エイリアス、パスワード)によって提供されるエイリアスとパスワードに基づいて、キーストアから秘密キーを取得します。 //公開キー生成ルールの定義rsapublickeyspec spec = new rsapublickeyspec(key.getModulus()、key.getpublicexponent()); // publicキーPublicKey publicKey = keyFactory.getInstance( "rsa")。generatepublic(spec);新しいkeypair(publickey、key)を返します。 } catch(Exception e){新しいIllegalStateException( "ストアからキーを読み込むことはできません:" + resource、e); }}JavaセキュリティAPIは、ここでキーで動作するために使用されます。メモを参照してください。次に、上記の情報は、configserverのbootstrap.xml configurationファイルを介して提供されます。
暗号化:#key:thisismysecretkeyキーストア:場所:file:// $ {user.home}/development/keys/server.jksパスワード:変更エイリアス:config-server-key secret:changeit対称暗号化と非対称暗号化の両方を使用できないため、encrypt.key構成にコメントし、非対称暗号化のパラメーターを指定します。
テスト
暗号化APIを使用して、テストデータを引き続き暗号化し続けます。
Curl http:// localhost:8888/encrypt -d 23456789
暗号化された文字を返します:
aqapwouoh4wvexggvv+bgtkc5e0d5aba8vuknzexh27hyksabw+wyzdwztbk5qyfxpocas413rdenidr2ez44nkjt5v+438/ vqexyszjzphp0xy9yiajqa3+ji+iwk8hrgtj4dzximcoirldzzzgdm/yklmuvh7larsnumxxgkklpdbpkywdqhm57ob 6SB0IVM4H4ML1N4D3QUCUE7H2FF4AW4OLN7XUEYMKRPTTPY8OPNBEEZHRFMAL/AUVZQULU5JJMNJK9JIWOY+DSTSCVIY/MZ+D ypv6f4afddvvog89snmpzcut+zmb8jxhdjloky+63rg326wffy9opuimw6/kcwzhv6vws55hqry713w6ydblrq/gyc3wils =
次に、復号化をテストします
curl http:// localhost:8888/decrypt -d aqapwouoh4+bgtkc5e0d5aba8vuknzexh27hyksabw+wyzdwztbk5qyfxpocas413rdenidr2ez44nkjt5v+438/vqexys ZJZPHP0XYXI9YIAJQA3+JI+IWK8HRGTJ4DZXIMCOIRLDZZZZGDM/YKLMUVH7LARSNUMXXGKLPDBPKKYWDQHM57OB6SB0 IVM4H4ML1N4D3QUCUE7H2F4AW4OLN7XUEYMKRPTTPTTPY8OPNBEEZHRFMAL/AUVZQULU5JJMNJK9JIWOY+DSTSCVIY/MZ+DYP V6F4AFDDVVOG89SNMPZCUT+ZMB8JXHDJLOKY+63RG326WFFY9OPUIMW6/KCWZHV6VWS55HHQRY713W6YDBLRQ/GYC3WILS =
戻ります
23456789
Web-Client.ymlを変更して確認することもできます。
#test:#password: '{cipher} 94C1027141ADD9844EC47F0BE13CAEBB6B38ED1DCF99811B1A5CD2B874C64407'USER:パスワード: '{cipher} aqapwouoh4wvexggvv+bgtkc5e0d5aba8vuknzexh27hyksabw+wyzdwztbk5qyfxpocas413rdenidr2ez44nkjt5 v+438/vqexyszjzphp0xyxi9yiajqa3+ji+iwk8hrgtj4dzikimcoirldzzzgdm/yklmuvh7larsnumxxgklpdbpkywdqhm 57OB6SB0IVM4H4ML1N4D3QUCUE7H2FF4AW4OLN7XUEYMKRPTTPY8OPNBEEZHRFMAL/AUVZQULU5JJMNJK9JIWOY+DSTSCVIY/MZ +dypv6f4afddvvog89snmpzcut+zmb8jxhdjloky+63rg326wffy9opuimw6/kcwzhv6vvws55hqry713w6ydblrq/gyc3wils = 'test.passwordをコメントし、新しいuser.passwordを追加して、暗号化された構成値を使用します。次に、Giteeリポジトリを送信し、URLを介してこの構成ファイルにアクセスします。
http:// localhost:8888/web-client/default
次の結果が得られます。
{"name": "web-client"、 "profiles":["default"]、 "label":null、 "version": "3044a5345fb86d09a043ca7404b9e57c8c13c512"、 "state":null、 "propertysouss":[{"null、" "" "null": "https://gitee.com/zxuqian/spring-cloud-config-remote/web-client.yml"、 "source":{"message": "このメッセージは、リモート構成リポジトリ"、 "Management.endpoints.web.exposure.include": ":"要約します
上記は、Spring Cloud Config RSAの導入と、RSAを使用してエディターが紹介した構成ファイルを暗号化する方法です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!