Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) · Pelajaran

Penyulitan dengan SSL/TLS

Lindungi data yang dihantar antara klien dan broker Kafka menggunakan penyulitan SSL/TLS untuk meningkatkan kerahsiaan.

Pelajaran 3 daripada 412 langkah

Penyulitan dengan SSL/TLS ialah pelajaran Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) percuma di CoddyKit. Ini ialah pelajaran 3 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 Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka), dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) merangkumi sejumlah 4 pelajaran.

Mengapa Melindungi Komunikasi Kafka?

Dalam Pelajaran 1 kursus mini ini, kita mempelajari tentang pengesahan klien Kafka dengan SASL. Kini, mari kita tumpukan perhatian pada perlindungan data itu sendiri semasa data bergerak antara aplikasi Spring Boot Anda dengan broker Kafka.

Bayangkan Anda menghantar data sensitif melalui rangkaian terbuka. Tanpa penyulitan, sesiapa sahaja berpotensi memintas dan membaca mesej Anda. Di sinilah SSL/TLS digunakan.

Memperkenalkan SSL/TLS untuk Privasi Data

SSL/TLS (Secure Sockets Layer/Transport Layer Security) ialah protokol kriptografi yang direka untuk menyediakan keselamatan komunikasi melalui rangkaian komputer. Anggaplah ia sebagai terowong selamat untuk data Anda.

  • Kerahsiaan: Menghalang data daripada dibaca tanpa kebenaran.
  • Integriti: Memastikan data tidak diubah suai semasa penghantaran.
  • Pengesahan: Mengesahkan identiti pihak yang berkomunikasi (pilihan tetapi disyorkan).

Stor Kunci dan Stor Amanah

Untuk mendayakan SSL/TLS, klien dan broker Kafka bergantung pada dua jenis stor kelayakan utama:

  • Stor kunci: Mengandungi kunci persendirian dan sijil digital untuk entiti (klien atau broker) mengenal pasti dirinya. Ia ibarat pasport digital Anda bersama kunci rahsianya.
  • Stor amanah: Mengandungi sijil Pihak Berkuasa Sijil (CA) yang dipercayai atau kunci awam yang dipercayai secara langsung. Ini membolehkan entiti mengesahkan identiti pihak lain. Ia ibarat senarai pejabat pasport yang dibenarkan dan Anda percayai.

Memahami Sijil Digital

Sijil digital ialah dokumen elektronik yang digunakan untuk membuktikan pemilikan kunci awam. Sijil ini dikeluarkan oleh Pihak Berkuasa Sijil (CA) atau boleh ditandatangani sendiri untuk tujuan pembangunan.

Untuk komunikasi Kafka yang selamat, kedua-dua klien anda (app Spring Boot) dan broker Kafka memerlukan sijil. Apabila klien bersambung, broker akan mengemukakan sijilnya dan klien mengesahkannya menggunakan stor amanah.

Konfigurasi SSL/TLS Broker Kafka (Gambaran Keseluruhan)

Walaupun fokus kita ialah Spring Boot, penting untuk diketahui bahawa broker Kafka juga mesti dikonfigurasikan untuk SSL/TLS. Broker memerlukan stor kunci dan stor amanah sendiri, serta port pendengar selamat tertentu (contohnya, 9093).

Apabila aplikasi Spring Boot anda bersambung, aplikasi itu akan menggunakan port selamat ini dan bertukar sijil untuk mewujudkan sambungan yang disulitkan. Persediaan ini biasanya dilakukan oleh pentadbir Kafka.

Persediaan SSL Pengeluar Spring Boot

Untuk mengkonfigurasikan pengeluar Kafka Spring Boot anda bagi SSL/TLS, anda perlu menambahkan sifat pada fail application.properties atau application.yml. Sifat ini memberitahu Spring Kafka tempat untuk mencari sijil yang diperlukan.

Berikut ialah sifat utama:

spring.kafka.producer.bootstrap-servers=localhost:9093
spring.kafka.properties.security.protocol=SSL
spring.kafka.properties.ssl.truststore.location=file:/path/to/client.truststore.jks
spring.kafka.properties.ssl.truststore.password=your-truststore-password
# Optional: for mutual TLS (client authentication)
spring.kafka.properties.ssl.keystore.location=file:/path/to/client.keystore.jks
spring.kafka.properties.ssl.keystore.password=your-keystore-password
spring.kafka.properties.ssl.key.password=your-key-password

Persediaan SSL Pengguna Spring Boot

Begitu juga, pengguna Kafka Spring Boot anda memerlukan konfigurasi SSL/TLS yang sama untuk bersambung dengan selamat. Sifatnya hampir sama, bagi memastikan kedua-dua bahagian aplikasi anda dapat berkomunikasi dengan broker Kafka secara selamat.

Pastikan anda merujuk kepada fail stor kunci dan stor amanah yang betul untuk pengguna anda.

spring.kafka.consumer.bootstrap-servers=localhost:9093
spring.kafka.properties.security.protocol=SSL
spring.kafka.properties.ssl.truststore.location=file:/path/to/client.truststore.jks
spring.kafka.properties.ssl.truststore.password=your-truststore-password
# Optional: for mutual TLS (client authentication)
spring.kafka.properties.ssl.keystore.location=file:/path/to/client.keystore.jks
spring.kafka.properties.ssl.keystore.password=your-keystore-password
spring.kafka.properties.ssl.key.password=your-key-password

spring.kafka.consumer.group-id=my-secure-group
spring.kafka.consumer.auto-offset-reset=earliest

Contoh: Aplikasi Pengeluar Selamat

Berikut ialah aplikasi Spring Boot asas yang, apabila digabungkan dengan sifat SSL daripada babak sebelumnya, akan cuba bersambung ke Kafka menggunakan SSL/TLS. Keselamatan dikendalikan oleh konfigurasi, bukan melalui perubahan kod yang jelas.

package com.coddykit;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.core.ProducerFactory;
import org.springframework.kafka.core.DefaultKafkaProducerFactory;
import java.util.HashMap;
import java.util.Map;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.common.serialization.StringSerializer;

@SpringBootApplication
public class SecureProducerApp {

    public static void main(String[] args) {
        SpringApplication.run(SecureProducerApp.class, args);
        System.out.println("Secure Producer App started.\nCheck application.properties for SSL config!");
    }

    // Spring Boot auto-configures this, but explicit definition helps understanding.
    @Bean
    public ProducerFactory<String, String> producerFactory() {
        Map<String, Object> configProps = new HashMap<>();
        configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9093");
        configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        // SSL properties are loaded automatically from application.properties
        return new DefaultKafkaProducerFactory<>(configProps);
    }

    @Bean
    public KafkaTemplate<String, String> kafkaTemplate() {
        return new KafkaTemplate<>(producerFactory());
    }
}

Contoh: Aplikasi Pengguna Selamat

Begitu juga, aplikasi pengguna menggunakan sifat konfigurasi yang sama untuk mewujudkan sambungan selamat. Anotasi @KafkaListener kemudiannya akan mengambil mesej daripada topik selamat secara automatik.

package com.coddykit;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;

@SpringBootApplication
public class SecureConsumerApp {

    public static void main(String[] args) {
        SpringApplication.run(SecureConsumerApp.class, args);
        System.out.println("Secure Consumer App started.\nCheck application.properties for SSL config!");
    }

    @Component
    public static class MyKafkaListener {
        @KafkaListener(topics = "secure-topic", groupId = "my-secure-group")
        public void listen(String message) {
            System.out.println("Received secure message: " + message);
        }
    }
}

Isu SSL/TLS Lazim

Mengkonfigurasikan SSL/TLS boleh menjadi rumit. Berikut ialah isu lazim yang perlu diberi perhatian:

  • Laluan Tidak Betul: Laluan fail stor amanah atau stor kunci mestilah betul dan boleh diakses.
  • Kata Laluan Salah: Kata laluan untuk stor kunci, stor amanah atau kunci persendirian mestilah sepadan tepat.
  • Sijil Tidak Dipercayai: Stor amanah klien mesti mengandungi sijil CA yang menandatangani sijil broker (atau sijil broker yang ditandatangani sendiri).
  • Ketidakpadanan Protokol: Pastikan security.protocol ditetapkan kepada SSL dan broker Kafka mendengar pada port SSL.

Semakan Pantas: Sifat SSL

Manakah antara sifat berikut yang penting untuk klien Kafka Spring Boot mewujudkan sambungan SSL/TLS yang selamat dengan broker Kafka, dengan andaian TLS bersama (pengesahan klien) didayakan pada broker?

Rumusan dan Langkah Seterusnya

Tahniah! Anda telah mempelajari cara melindungi data semasa penghantaran untuk aplikasi Kafka Spring Boot menggunakan SSL/TLS.

  • Kita telah membincangkan kepentingan SSL/TLS untuk kerahsiaan dan integriti.
  • Anda telah memahami peranan stor kunci dan stor amanah.
  • Anda telah meneroka application.properties utama untuk mengkonfigurasikan pengeluar dan pengguna yang selamat.
  • Anda telah meneliti perangkap lazim semasa menyediakan SSL/TLS.

Dengan menggabungkan perkara yang telah anda pelajari tentang pengesahan SASL dan penyulitan SSL/TLS, anda boleh membina perkhidmatan mikro berasaskan Kafka yang kukuh dan selamat.

Percuma untuk bermula

Pelajari Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) 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 “Penyulitan dengan SSL/TLS” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka), termasuk “Penyulitan dengan SSL/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 Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Penyulitan dengan SSL/TLS”?

Lindungi data yang dihantar antara klien dan broker Kafka menggunakan penyulitan SSL/TLS untuk meningkatkan kerahsiaan. Anda berlatih Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) 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 Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka)?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) 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 3 daripada 4.

Berapa lamakah pelajaran “Penyulitan dengan SSL/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 Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) ini?

Ya. Setiap pelajaran Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka) 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

  1. Pengesahan dengan SASL
  2. Pemberian Kuasa dengan ACL
  3. Penyulitan dengan SSL/TLS
  4. Pengauditan dan Perlindungan Akses Schema Registry
← Kembali ke Spring Boot 4 Lanjutan: Seni Bina Dipacu Peristiwa (Kafka)