Komunikasi Nod Selamat (TLS)
Konfigurasikan nod Erlang untuk berkomunikasi dengan selamat menggunakan TLS/SSL, dengan menyulitkan data yang dihantar merentas rangkaian
Komunikasi Nod Selamat (TLS) ialah pelajaran Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP merangkumi sejumlah 4 pelajaran.
Mengapa Nod Erlang Perlu Dilindungi?
Apabila nod Erlang berkomunikasi, khususnya melalui rangkaian atau dalam persekitaran produksi, interaksi mereka perlu dilindungi. Hal ini menghalang pencurian dengar, pengubahan dan akses tanpa kebenaran.
Secara lalai, protokol pengagihan Erlang tidak menyulitkan komunikasi. Pelajaran ini akan menunjukkan kepada anda cara menambahkan lapisan keselamatan menggunakan TLS/SSL.
TLS: Jabat Tangan Keselamatan
TLS (Keselamatan Lapisan Pengangkutan) dan pendahulunya, SSL (Lapisan Soket Selamat), ialah protokol kriptografi yang direka untuk menyediakan keselamatan komunikasi melalui rangkaian komputer.
Protokol ini mencapainya melalui:
- Penyulitan: Mengacau data supaya hanya penerima yang dimaksudkan dapat membacanya.
- Pengesahan: Mengesahkan identiti pihak yang berkomunikasi.
- Integriti Data: Memastikan data tidak diubah semasa penghantaran.
Protokol Pengagihan Erlang
Nod Erlang berkomunikasi menggunakan protokol pengagihan terbina dalam. Biasanya, anda memulakan nod seperti ini:
erl -sname node1
Ini mencipta sambungan yang pantas dan cekap, tetapi sambungan tersebut tidak menggunakan penyulitan secara semula jadi. Untuk komunikasi yang selamat, kita perlu mengarahkan Erlang supaya menggunakan TLS untuk pengagihannya.
Sijil & Kunci untuk Kepercayaan
TLS bergantung pada sistem sijil digital dan kunci peribadi untuk mewujudkan kepercayaan dan melindungi sambungan. Anggaplah kedua-duanya sebagai ID digital.
- Kunci Peribadi: Kunci rahsia yang digunakan untuk menyulitkan/menyahsulitkan data dan menandatangani sijil. Pastikan kunci ini benar-benar selamat!
- Sijil (Kunci Awam): Mengandungi kunci awam dan maklumat tentang entiti (nod). Sijil ini dikongsi dan digunakan untuk mengesahkan identiti.
- Sijil CA: Sijil daripada Pihak Berkuasa Sijil (CA) yang menandatangani sijil lain, lalu mewujudkan rantaian kepercayaan.
Mencipta Sijil Ujian
Untuk ujian setempat, kita boleh menjana sijil ditandatangani sendiri menggunakan alat seperti openssl. Dalam persekitaran produksi, anda akan menggunakan sijil daripada CA yang dipercayai.
Berikut ialah cara mencipta CA, sijil pelayan dan sijil klien:
# CA key and cert
openssl genrsa -out ca_key.pem 2048
openssl req -new -x509 -days 365 -key ca_key.pem -out ca.pem -subj "/CN=MyTestCA"
# Server key and cert
openssl genrsa -out server_key.pem 2048
openssl req -new -key server_key.pem -out server.csr -subj "/CN=server.test"
openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca_key.pem -CAcreateserial -out server.pem
# Client key and cert
openssl genrsa -out client_key.pem 2048
openssl req -new -key client_key.pem -out client.csr -subj "/CN=client.test"
openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca_key.pem -CAcreateserial -out client.pem
Mengkonfigurasi TLS pada Nod A (Pelayan)
Untuk mendayakan TLS, kita perlu mengkonfigurasi aplikasi Erlang kernel. Kita menetapkan proto_dist kepada inet_tls dan menyediakan pilihan SSL.
Nod A ('pelayan' dalam konteks ini, yang mendengar sambungan) memerlukan sijil, kunci peribadi dan sijil CA untuk mengesahkan klien.
erl -sname nodeA -kernel proto_dist inet_tls -kernel dist_listen_min 9000 -kernel dist_listen_max 9000 -kernel ssl_dist_opt '[{server,{certfile,"server.pem"},{keyfile,"server_key.pem"},{cacertfile,"ca.pem"}}, {client,{cacertfile,"ca.pem"}}]'
Perhatikan dist_listen_min/max untuk menetapkan port agar penyediaan tembok api lebih mudah.
Mengkonfigurasi TLS pada Nod B (Klien)
Nod B ('klien' yang memulakan sambungan) juga memerlukan konfigurasi yang serupa. Nod ini menyediakan sijil dan kuncinya sendiri, serta sijil CA untuk mengesahkan pelayan.
erl -sname nodeB -kernel proto_dist inet_tls -kernel dist_listen_min 9001 -kernel dist_listen_max 9001 -kernel ssl_dist_opt '[{client,{certfile,"client.pem"},{keyfile,"client_key.pem"},{cacertfile,"ca.pem"}}]'
Kedua-dua nod mesti mempercayai CA yang menandatangani sijil nod yang satu lagi. Sebab itulah kedua-duanya merujuk kepada ca.pem.
Sambungan Selamat Pertama!
Mari gabungkan semuanya! Mula-mula, kompilkan modul ringkas ini pada kedua-dua nod. Kemudian, mulakan dua nod Erlang dengan pilihan TLS yang diperlukan (menggunakan fail sijil yang telah anda jana). Akhir sekali, cuba panggil my_module:hello/0 dari jauh untuk melihat interaksi yang selamat.
1. Kompilkan modul:erlc my_module.erl
2. Mulakan Nod A (gantikan hostname dengan nama hos mesin anda):erl -sname nodeA@hostname -kernel proto_dist inet_tls -kernel dist_listen_min 9000 -kernel dist_listen_max 9000 -kernel ssl_dist_opt '[{server,{certfile,"server.pem"},{keyfile,"server_key.pem"},{cacertfile,"ca.pem"}}, {client,{cacertfile,"ca.pem"}}]'
3. Mulakan Nod B (dalam terminal baharu):erl -sname nodeB@hostname -kernel proto_dist inet_tls -kernel dist_listen_min 9001 -kernel dist_listen_max 9001 -kernel ssl_dist_opt '[{client,{certfile,"client.pem"},{keyfile,"client_key.pem"},{cacertfile,"ca.pem"}}]'
4. Pada Nod B, sambung dan panggil:net_adm:ping('nodeA@hostname').
rpc:call('nodeA@hostname', my_module, hello, []).
-module(my_module).
-export([hello/0]).
hello() ->
io:format("~p: Hello from secured node!~n", [node()]),
"Hello from secured node!".Mengesahkan Status TLS
Selepas menyambungkan nod, anda boleh mengesahkan bahawa sambungan tersebut sememangnya menggunakan TLS. Aplikasi ssl menyediakan fungsi untuk memeriksa sambungan yang aktif.
Daripada mana-mana nod yang bersambung, anda boleh mendapatkan maklumat tentang sambungan SSL. Sebagai contoh, pada nodeA, selepas nodeB bersambung:
{ok, Socket} = gen_tcp:connect("localhost", 9001, [binary, {active, false}, {packet, 4}, {reuseaddr, true}]).
{ok, SslSocket} = ssl:handshake(Socket, [{mode, client}]).
ssl:connection_info(SslSocket).
Anda sepatutnya melihat butiran tentang versi TLS, set sifir dan sijil yang sedang digunakan.
Semakan Sambungan Selamat
Anda telah mempelajari langkah asas untuk melindungi komunikasi nod Erlang dengan TLS. Mari uji pemahaman anda.
Nod Selamat: Perkara yang Telah Kita Pelajari
Tahniah! Anda telah mengambil langkah pertama untuk melindungi aplikasi Erlang teragih.
Anda telah mempelajari:
- Kepentingan TLS untuk komunikasi nod yang selamat.
- Komponen teras: sijil, kunci peribadi dan Pihak Berkuasa Sijil.
- Cara menjana sijil ditandatangani sendiri untuk pengujian.
- Mengkonfigurasi nod Erlang supaya menggunakan TLS dengan
proto_distdanssl_dist_opt. - Menjalankan aplikasi teragih selamat yang asas.
Melindungi sistem Erlang anda amat penting. Seterusnya, kita akan meneroka cara mengendalikan pengesahan dan keizinan dalam aplikasi anda.
Pelajari Erlang dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Komunikasi Nod Selamat (TLS)” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP, termasuk “Komunikasi Nod Selamat (TLS)”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Komunikasi Nod Selamat (TLS)”?
Konfigurasikan nod Erlang untuk berkomunikasi dengan selamat menggunakan TLS/SSL, dengan menyulitkan data yang dihantar merentas rangkaian Anda berlatih Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Komunikasi Nod Selamat (TLS)” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP ini?
Ya. Setiap pelajaran Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Komunikasi Nod Selamat (TLS)
- Pengesahan & Kebenaran Akses
- Melindungi Data Sensitif
- Mengukuhkan Kuki Pengagihan dan Akses Nod