Spring Cloud memberi para pengembang dengan berbagai alat untuk dengan cepat membangun model umum sistem terdistribusi. Misalnya: Manajemen Konfigurasi, Penemuan Layanan, Off-routing, Routing Cerdas, Agen Mikro, Bus Kontrol, Token Satu Kali, Kunci Global, Kampanye Pengambilan Keputusan, Sesi Terdistribusi, Status Cluster, dll. Bantuan sistem terdistribusi memerlukan sejumlah besar model, dan pengembang menggunakan Spring Cloud dapat dengan cepat menetapkan layanan dan aplikasi yang mendukung pola ini. Mereka akan cocok untuk lingkungan terdistribusi, apakah itu komputer pribadi pengembang atau lingkungan produksi, atau platform cloud.
ciri
Spring Cloud berfokus pada penyediaan solusi khas dan cara yang dapat diskalakan yang bagus di luar kotak.
Perkenalan
Enkripsi asimetris RSA memiliki keamanan yang sangat kuat. Enkripsi HTTPS SSL menggunakan metode ini untuk mengenkripsi dan mengirimkan permintaan HTTPS. Karena algoritma RSA melibatkan kunci pribadi dan kunci publik untuk enkripsi dan dekripsi, ini disebut enkripsi asimetris. Kunci pribadi dan kunci publik dapat dioperasikan, yaitu, yang dienkripsi dengan kunci pribadi dapat didekripsi dengan kunci publik, dan mereka yang dienkripsi dengan kunci publik dapat didekripsi dengan kunci pribadi. Otentikasi satu arah tradisional hanya menggunakan kunci publik untuk enkripsi, dan hanya mereka yang memiliki kunci pribadi yang dapat mendekripsi. Misalnya, server web akan memiliki satu kunci pribadi dan kunci publik. Klien browser menyimpan kunci publik server. Ketika klien perlu mengirim data ke server, ia menggunakan kunci publik server untuk mengenkripsi. Kemudian, ketika server menerima data, ia menggunakan kunci pribadi untuk mendekripsi. Ketika klien memverifikasi apakah server adalah server nyata, itu akan membandingkan kunci publik yang disediakan oleh server dengan kunci publik yang disimpan secara lokal. Hanya jika itu konsisten, keaslian server dapat diverifikasi.
Di server konfigurasi kami, beberapa data yang memiliki persyaratan enkripsi tinggi dapat dienkripsi dan didekripsi menggunakan algoritma RSA.
Kode Sumber Proyek
Cloud kode gitee
Hasilkan keystore uji
Kita perlu menggunakan alat KeyTool yang dilengkapi dengan JDK untuk menghasilkan keystore, yang menyimpan informasi kunci pribadi, dan menggunakan baris perintah berikut:
KeyTool -GenKeyPair -alias config -server-key -keyalg rsa -dname "cn = server konfigur
-KeyStore server.jks -storepass changeit
Parameter -GenKeyPair menghasilkan sepasang kunci publik dan kunci pribadi.
-alias menentukan alias kunci, yang digunakan untuk membedakan tombol yang berbeda di keystore yang sama.
-KeyAlg Menentukan algoritma untuk menghasilkan kunci, dan RSA default digunakan di sini
-dname Menentukan nama umum, yaitu, CN, untuk memverifikasi identitas kunci. Semua item adalah parameter khusus, OU adalah nama unit, o adalah nama organisasi, l adalah kota, s adalah provinsi/negara bagian, dan c adalah negara
-KEYPASS adalah kata sandi untuk kunci
-KeyStore adalah nama file keystore
-Storpass Password untuk mengakses keystore
Alat di atas menyimpan kunci pribadi yang dihasilkan di toko kunci yang disebut server.jks. Sejauh ini, kami hanya menghasilkan kunci pribadi. Spring Cloud Config Server akan menghasilkan kunci publik menggunakan program setiap kali berdasarkan informasi kunci yang kami berikan. Lihat kode sumber di bawah ini.
org.springframework.security.rsa.crypto.keystoreyfactory:
Public KeyPair getKePiRAir (String Alias, Char [] Kata sandi) {coba {disinkronkan (kunci) {if (store == null) {disinkronkan (kunci) {// Dapatkan objek instance dari keystore berdasarkan alamat file keystore dan kata sandi yang disediakan oleh configuration = keystore.getinstance ("jks"); Store.Load (Resource.GetInputStream (), this.password); }}} // Dapatkan kunci pribadi dari keystore berdasarkan alias dan kata sandi yang disediakan oleh konfigurasi rsaprivatecrtkey key = (rsaprivatecrtkey) store.getkey (alias, kata sandi); // Tentukan aturan pembuatan kunci publik rsapublickeyspec spec = rsapublickeyspec baru (key.getModulus (), key.getPublicexponent ()); // menghasilkan kunci publik publickey = keyfactory.getInstance ("rsa"). GeneratePublic (spec); mengembalikan keypair baru (publickey, kunci); } catch (Exception e) {lempar baru ilegalstateException ("tidak dapat memuat tombol dari toko:" + sumber daya, e); }}Java Security API digunakan di sini untuk beroperasi pada kunci. Lihat catatan. Kemudian informasi di atas disediakan melalui file konfigurasi bootstrap.xml di ConfigServer:
Enkripsi: #key: thisismysecretkey key-store: Lokasi: file: // $ {user.home} /development/keys/server.jks Kata sandi: alias alias: config-server-recky: ubahKarena kami tidak dapat menggunakan enkripsi simetris dan enkripsi asimetris, kami mengomentari konfigurasi enkripsi.Key dan menentukan parameter untuk enkripsi asimetris:
tes
Kami terus mengenkripsi data uji menggunakan API Encrypt:
Curl http: // localhost: 8888/enkripsi -d 23456789
Mengembalikan karakter terenkripsi:
Aqapwouoh4wvexggvv+bgtkc5e0d5aba8vuknzexh27hyksabw+wyzdwztbk5qyfxpocas413rdenidr2ez44nkjt5v+438/ Vqexyszjzphp0xyxi9yiajqa3+ji+iwk8hrgtj4dzxikmitimcoirldzzgdm/yklmuvh7larsnumxxgklpdbpkywdqhm57ob 6SB0IVM4H4ML1N4D3QUCUE7HH2F4AW4OLN7XUEMKRPTTPY8OPNBEEZHRFMAL/AUVZQULU5JJMNJK9JIWOY+DSTSCVIY/MZ+D. YPV6F4AFDDVVOG89SNMPZCUT+ZMB8JXHDJLOKY+63RG326WFFY9OPUIMW6/KCWZHV6VWS55HQRY713W6YDBLRQ/GYC3WILS =
Kemudian uji dekripsi
Curl http: // localhost: 8888/decrypt -d AQAPWOUOH4+BGTKC5E0D5ABA8VUKNEXH27HYKSABW+WYZDWZTBK5QYFXPOCAS413RDENIDR2EZ44NKJT5V+438/VQEXYS Zjzphp0xyxi9yiajqa3+ji+iwk8hrgtj4dzxikmitimcoirldzzzgdm/yklmuvh7larsnumxxgklpdbpkywdqhm57ob6sb0 IVM4H4ML1N4D3QUCUE7HH2F4AW4OLN7XUEMKRPTTPY8OPNBEEZHRFMAL/AUVZQULU5JJMNJK9JIWOY+DSTSCVIY/MZ+DYP V6F4AFDDVVOG89SNMPZCUT+ZMB8JXHDJLOKY+63RG326WFFY9OPUIMW6/KCWZHV6VWS55HHQRY713W6YDBLRQ/GYC3WILS =
Akan kembali
23456789
Kami juga dapat memodifikasi web-client.yml untuk memverifikasi:
#test: #password: '{cipher} 94c1027141add9844ec47f0be13Caebb6b38ed1dcf99811b1a5cd2b874c64407'user: kata sandi: '{cipher} aqapwouoh4wvexggvv+bgtkc5e0d5aba8vuknzexh27hyksabw+wyzdwztbk5qyfxpocas413rdenidr2ez44nkjt5 V+438/VQEXYSZJZPHP0XYXI9YIAJQA3+JI+IWK8HRGTJ4DZXIKMITIMCOIRLDZZGDM/YKLMUVH7LARSNUMXXGKLPDBPKYWDQHM 57OB6SB0IVM4H4ML1N4D3QUCUE7HH2F4AW4OLN7XUEMKRPTTPY8OPNBEEZHRFMAL/AUVZQULU5JJMNJK9JIWOY+DSTSCVIY/MZ +DYPV6F4AFDDVVOG89SNMPZCUT+ZMB8JXHDJLOKY+63RG326WFFY9OPUIMW6/KCWZHV6VWS55HQRY713W6YDBLRQ/GYC3WILS = 'Komentar out test.password dan tambahkan pengguna baru.password untuk menggunakan nilai konfigurasi terenkripsi. Kemudian kirimkan repositori gitee dan akses file konfigurasi ini melalui URL:
http: // localhost: 8888/web-client/default
Hasil berikut diperoleh:
{"Name": "Web-Client", "Profiles": ["Default"], "Label": null, "Versi": "3044A5345FB86D09A043CA7404B9E57C8C13C512", "NEGARA": NULL, "PROPERSOSOSOSOS": [{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{nama "" "" "https://gitee.com/zxuqian/spring-cloud-config-remote/web-client.yml", "sumber": {"pesan": "Pesan ini berasal dari repositori konfigurasi jarak jauh", "end.endpoints.web.exposure.include": "*", "User.pass.endpoints.web.exposure.include": "*", "User.password.Meringkaskan
Di atas adalah pengenalan Spring Cloud Config RSA dan metode menggunakan RSA untuk mengenkripsi file konfigurasi yang diperkenalkan oleh editor kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!