All Products
Search
Document Center

Microservices Engine:Aktifkan TLS untuk instans MSE Nacos

Last Updated:Jun 09, 2026

Nacos mendukung TLS untuk mengenkripsi data yang ditransmisikan antara klien dan server, sehingga mencegah informasi sensitif dicegat atau dimanipulasi.

Prasyarat

  • atau Aktifkan MSE.

  • Telah dibuat engine Nacos versi 2.1.2.1 atau lebih baru. Buat engine Nacos. Untuk melakukan upgrade dari versi sebelumnya, lihat Upgrade versi engine Nacos.

  • Versi Java Development Kit (JDK) adalah 8u252 atau lebih baru.

    Catatan

    Versi JDK sebelum 8u252 memiliki masalah kompatibilitas TLS. Lakukan upgrade ke 8u252 atau versi lebih baru, atau gunakan nacos-client murni sebagai gantinya. Bagaimana cara mengimpor nacos-client murni?.

    • nacos-client murni dapat menggunakan OpenSSL sebagai penyedia SSL, tetapi Anda harus menghapus parameter nacos.remote.client.rpc.tls.provider.

    • Versi Nacos murni tidak menyembunyikan (shade) paket pihak kedua yang menjadi dependensi. Anda mungkin perlu menyelesaikan konflik paket.

Langkah 1: Ubah pengaturan parameter Nacos

  1. Masuk ke Konsol MSE, lalu pilih Wilayah di bilah navigasi atas.

  2. Di panel navigasi kiri, pilih Microservices Registry > Instances. Klik nama instans tersebut.

  3. Di panel navigasi kiri, klik Parameter Settings. Klik Edit, atur parameter TLSEnabled menjadi Yes, lalu klik Save and Restart Instance.

    Setelah restart, server menerima koneksi TLS dari klien Nacos.

Langkah 2: Upgrade nacos-client

Catatan

Diperlukan nacos-client versi 2.2.1 atau lebih baru untuk TLS.

  1. Lakukan upgrade nacos-client ke versi 2.2.1 atau lebih baru.

    <dependency>
        <groupId>com.alibaba.nacos</groupId>
        <artifactId>nacos-client</artifactId>
        <version>2.2.1</version>
    </dependency>
  2. Atur parameter tls untuk mengaktifkan fitur TLS.

    Atur parameter tls menggunakan salah satu metode berikut. Prioritas: file properties > parameter JVM > variabel lingkungan.

    • Atur parameter dalam file properties. Teruskan saat membuat instans NacosConfigService atau NacosNamingService.

      • properties.put("nacos.remote.client.rpc.tls.enable","true");

      • properties.put("nacos.remote.client.rpc.tls.trustAll","true");

      • properties.put("nacos.remote.client.rpc.tls.provider","JDK");

      Metode ini memiliki prioritas lebih tinggi daripada parameter JVM dan variabel lingkungan. Berlaku pada level instans NacosConfigService dan NacosNamingService.

    • Atur parameter JVM.

      • -Dnacos.remote.client.rpc.tls.enable=true

      • -Dnacos.remote.client.rpc.tls.trustAll=true

      • -Dnacos.remote.client.rpc.tls.provider=JDK

      Metode ini berlaku pada level proses JVM untuk semua instans NacosConfigService dan NacosNamingService tanpa override dari file properties.

    • Atur variabel lingkungan.

      • nacos_remote_client_rpc_tls_enable=true

      • nacos_remote_client_rpc_tls_trustAll=true

      • nacos_remote_client_rpc_tls_provider=JDK

      Metode ini berlaku pada level server untuk semua instans tanpa override dari JVM atau file properties.

  3. Konfirmasi bahwa enkripsi TLS telah diaktifkan.

    1. Lihat log startup.

      nacos-client mencatat konfigurasi TLS ke {user.home}/logs/nacos/remote.log saat startup.

      2023-04-06 09:56:56.539 INFO [com.alibaba.nacos.client.Worker:c.a.n.c.r.c.g.GrpcClient] grpc client connection server:mse-xxx.nacos-ans.mse.aliyuncs.com ip,serverPort:9848,grpcTslConfig:{"sslProvider":"","enableTls":true,"mutualAuthEnable":false,"trustAll":true}

      Bidang "enableTls":true mengonfirmasi bahwa TLS aktif. Jika klien berhasil memulai dan membaca/menulis konfigurasi secara normal, enkripsi telah berfungsi.

    2. Tangkap paket data dengan perintah tcpdump.

      Jalankan tcpdump untuk menangkap paket. Contoh berikut menyimpan output ke /tmp/tcptrace.cap. Sesuaikan path sesuai kebutuhan.

      sudo tcpdump -i any -w /tmp/tcptrace.cap -p 9848

      Buka file tersebut di Wireshark atau alat serupa. Jika protokol menampilkan TCP&TLS, enkripsi telah aktif.

FAQ

Bagaimana cara mengimpor nacos-client murni?

Tambahkan dependensi berikut:

<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>2.2.1</version>
    <classifier>pure</classifier>
</dependency>
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-common</artifactId>
    <version>2.2.1</version>
</dependency>
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-api</artifactId>
    <version>2.2.1</version>
</dependency>

Jika TLS diaktifkan pada engine sisi server, apakah versi nacos-client lama didukung untuk enkripsi?

Tidak. Anda harus melakukan upgrade nacos-client ke versi 2.2.1 atau lebih baru untuk mengaktifkan enkripsi TLS.

Jika TLS diaktifkan pada engine sisi server, apakah terdapat masalah kompatibilitas dengan versi nacos-client lama?

Mesin DPI secara default berjalan dalam mode kompatibilitas untuk mendukung akses normal dari klien lama yang tidak menggunakan TLS.

Apakah MSE Nacos mendukung otentikasi satu arah atau otentikasi timbal balik?

MSE Nacos hanya mendukung otentikasi satu arah: klien memverifikasi server, tetapi server tidak memverifikasi klien.

Mengapa klien menggunakan mode trustAll?

Mode trustAll menyederhanakan penyiapan TLS. Untuk keamanan yang lebih ketat, hubungi dukungan teknis MSE (grup DingTalk ID: 43525005207) untuk mendapatkan Sertifikat CA resmi MSE, lalu tentukan sebagai file CA tepercaya:

  • File properties: nacos.remote.client.rpc.tls.trustCollectionChainPath=file:{filePath}

  • Parameter JVM: -Dnacos.remote.client.rpc.tls.trustCollectionChainPath=file:{filePath}

  • Variabel lingkungan: nacos_remote_client_rpc_tls_trustCollectionChainPath=file:{filePath}

Catatan

Prioritas parameter: file properties > parameter JVM > variabel lingkungan.

Mengapa parameter TLS yang disuntikkan melalui file properties tidak berlaku?

Nilai properti TLS harus berupa string. Jangan teruskan nilai boolean.

  • Format yang benar: properties.put("nacos.remote.client.rpc.tls.enable","true");

  • Format yang salah: properties.put("nacos.remote.client.rpc.tls.enable",true);

Apa yang harus saya lakukan jika log NotSslRecordException: not an SSL/TLS record muncul di log nacos-client?

Server mengembalikan respons non-TLS karena TLS belum diaktifkan di sisi server. Aktifkan TLS di server untuk mengatasi masalah ini. Langkah 1: Ubah pengaturan parameter Nacos.