全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan autentikasi bersama HTTPS untuk meningkatkan keamanan layanan

更新时间:Jul 02, 2025

Mekanisme autentikasi bersama HTTPS memastikan bahwa server dan klien dapat saling memverifikasi identitas. Anda dapat menggunakan autentikasi bersama HTTPS untuk menjamin keamanan layanan di sektor keuangan, IoT, layanan internal perusahaan, atau layanan publik yang melibatkan perlindungan privasi, serta dalam skenario di mana layanan hanya diekspos kepada klien tertentu.

Perbandingan antara autentikasi satu arah HTTPS dan autentikasi bersama HTTPS

  • Autentikasi satu arah HTTPS: Klien mengunduh sertifikat SSL atau TLS dari server untuk memverifikasi identitas server dan membuat saluran aman. Server tidak dapat memverifikasi identitas klien.

  • Autentikasi bersama HTTPS: Klien mengunduh sertifikat SSL atau TLS dari server untuk memverifikasi identitas server. Pada saat yang sama, klien mengirimkan sertifikat SSL atau TLS miliknya ke server sebagai bukti identitas. Saluran aman hanya dibuat setelah klien dan server saling memverifikasi identitas. Dalam banyak kasus, server memiliki sertifikat root CA, dan klien memiliki sertifikat SSL atau TLS yang ditandatangani dan diterbitkan berdasarkan sertifikat root CA tersebut. Oleh karena itu, server dapat memverifikasi identitas klien. Menggunakan autentikasi bersama HTTPS memungkinkan Anda mengekspos layanan hanya kepada klien tepercaya, mencegah serangan man-in-the-middle, dan meningkatkan keamanan layanan.

Prasyarat

(Opsional) Langkah 1: Hasilkan sertifikat CA tanda tangan sendiri

Anda dapat mengikuti langkah-langkah berikut untuk menghasilkan sertifikat root CA.

  1. Jalankan perintah berikut untuk membuat kunci privat:

    openssl genrsa -out ca.key 4096
  2. Jalankan perintah berikut untuk membuat permintaan penandatanganan sertifikat (CSR):

    openssl req -new -out ca.csr -key ca.key

    Tentukan informasi sertifikat setelah menjalankan perintah di atas. Blok kode sampel berikut menunjukkan parameter dan nilai sampel:

    Country Name (2 letter code) [XX]:cn
    State or Province Name (full name) []:bj
    Locality Name (eg, city) [Default City]:bj
    Organization Name (eg, company) [Default Company Ltd]:alibaba
    Organizational Unit Name (eg, section) []:test
    Common Name (eg, your name or your servers hostname) []:root
    Email Address []:example@ali
    A challenge password []:

    Tabel berikut menjelaskan parameter.

    Parameter

    Diperlukan

    Deskripsi

    Nama Negara

    Ya

    Kode negara, biasanya terdiri dari dua huruf, seperti cn (Tiongkok).

    Nama Provinsi atau Wilayah

    Ya

    Nama provinsi atau wilayah otonom.

    Nama Lokalitas

    Ya

    Nama kota.

    Nama Organisasi

    Ya

    Nama organisasi, seperti nama perusahaan.

    Nama Unit Organisasi

    Ya

    Nama departemen.

    Nama Umum

    Tidak

    Nama umum yang digunakan.

    Alamat Email

    Tidak

    Alamat email yang digunakan untuk menghubungi administrator sertifikat.

    Kata sandi tantangan

    Tidak

    Kata sandi yang digunakan untuk meningkatkan keamanan CSR. Dalam contoh ini, tidak ada kata sandi yang diatur.

  3. Jalankan perintah berikut untuk membuat sertifikat root CA:

    openssl x509 -req -in ca.csr -out ca.crt -signkey ca.key -CAcreateserial -days 3650

    Setelah operasi di atas dilakukan, jalankan perintah ls untuk melihat file kunci privat dan file sertifikat dari sertifikat root di direktori saat ini.

    ca.crt ca.csr ca.key

    ca.crt adalah file sertifikat root CA, ca.csr adalah file CSR, dan ca.key adalah file kunci privat.

Langkah 2: Unggah sertifikat

  1. Masuk ke konsol Layanan Manajemen Sertifikat. Di bilah navigasi di bagian atas, pilih Outside Chinese Mainland dari daftar drop-down wilayah. Di panel navigasi di sebelah kiri, klik Certificate Application Repository.

  2. Di halaman Certificate Application Repository, klik Create Repository. Di panel Create Repository, atur parameter berikut dan klik OK.

    Parameter

    Deskripsi

    Nama Repositori

    Nama repositori. Anda dapat menentukan nama kustom.

    Sumber Data

    Pilih Upload CA Certificates untuk mengunggah sertifikat pribadi yang ditandatangani dan diterbitkan oleh otoritas sertifikat pihak ketiga.

  3. Di halaman Certificate Application Repository, klik repositori yang Anda buat. Lalu, klik Uploaded Certificates.

  4. Di panel CA Information, atur parameter berdasarkan tabel berikut untuk mengunggah sertifikat CA yang Anda buat di Langkah 3 dan klik Confirm and Enable.

    Parameter

    Deskripsi

    Package Name

    Masukkan nama kustom untuk sertifikat yang ingin Anda unggah.

    CA Certificates

    Masukkan konten file sertifikat pribadi atau klik Upload and Parse File untuk mengunggah file sertifikat.

  5. Klik Details di sebelah kanan Sertifikat, lalu catat pengenal sertifikat.

Langkah 3: Gunakan sertifikat root CA untuk menghasilkan sertifikat klien

  1. Jalankan perintah berikut untuk menghasilkan kunci privat untuk sertifikat klien:

    openssl genrsa -out client.key 4096
  2. Jalankan perintah berikut untuk menghasilkan CSR untuk membuat sertifikat klien:

    openssl req -new -out client.csr -key client.key

    Tentukan informasi sertifikat setelah menjalankan perintah di atas. Blok kode sampel berikut menunjukkan parameter dan nilai sampel:

    Country Name (2 letter code) [XX]:cn
    State or Province Name (full name) []:bj
    Locality Name (eg, city) [Default City]:bj
    Organization Name (eg, company) [Default Company Ltd]:alibaba
    Organizational Unit Name (eg, section) []:test
    Common Name (eg, your name or your servers hostname) []:root
    Email Address []:example@ali
    A challenge password []:

    Tabel berikut menjelaskan parameter.

    Parameter

    Diperlukan

    Deskripsi

    Nama Negara

    Ya

    Kode negara, biasanya terdiri dari dua huruf, seperti cn (Tiongkok).

    Nama Provinsi atau Wilayah

    Ya

    Nama provinsi atau wilayah otonom.

    Nama Lokalitas

    Ya

    Nama kota.

    Nama Organisasi

    Ya

    Nama organisasi, seperti nama perusahaan.

    Nama Unit Organisasi

    Ya

    Nama departemen.

    Nama Umum

    Tidak

    Nama umum yang digunakan.

    Alamat Email

    Tidak

    Alamat email yang digunakan untuk menghubungi administrator sertifikat.

    Kata sandi tantangan

    Tidak

    Kata sandi yang digunakan untuk meningkatkan keamanan CSR. Dalam contoh ini, tidak ada kata sandi yang diatur.

  3. Jalankan perintah berikut untuk menghasilkan sertifikat klien:

    openssl x509 -req -in client.csr -out client.crt -signkey client.key -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650

    ca.crt dan ca.key adalah file sertifikat root CA dan file kunci privat.

  4. Setelah operasi di atas dilakukan, jalankan perintah ls untuk melihat sertifikat klien yang dihasilkan di direktori saat ini.

    client.crt client.csr client.key

    client.crt adalah file sertifikat klien yang ditandatangani berdasarkan sertifikat root CA, client.csr adalah file CSR, dan client.key adalah file kunci privat klien.

Langkah 4: Aktifkan dan uji autentikasi bersama

  1. Aktifkan autentikasi bersama untuk pendengar HTTPS.

    1. Jalankan perintah berikut untuk memodifikasi AlbConfig:

      kubectl edit albconfig <ALBCONFIG_NAME> # Ganti <ALBCONFIG_NAME> dengan nama AlbConfig.
    2. Tambahkan bidang caEnabled ke pendengar HTTPS dan atur nilainya menjadi true, serta tambahkan bidang caCertificates.CertificateId ke pendengar dan atur nilainya menjadi pengenal sertifikat root CA yang diperoleh di Langkah 2.

      apiVersion: alibabacloud.com/v1
      kind: AlbConfig
      metadata:
        name: #...
      spec:
        config:
          #...
        listeners:
        - port: 443
          protocol: HTTPS
          caEnabled: true # Tambahkan bidang caEnabled dan atur nilainya menjadi true.
          caCertificates:
          - CertificateId: 0e40dda998174723af39d37fcaf***** # Tentukan pengenal sertifikat root CA yang diperoleh di Langkah 2.
          certificates:
            #...
  2. Uji autentikasi bersama.

    1. Jalankan perintah berikut untuk memeriksa Ingress:

      kubectl get ingress

      Keluaran yang diharapkan:

      NAME            CLASS                HOSTS                  ADDRESS                         PORTS     AGE
      https-ingress   https-ingressclass   demo.alb.ingress.top   alb-********.alb.aliyuncs.com   80, 443   83m

      Catat nilai di kolom HOSTS dan ADDRESS.

    2. Jalankan perintah berikut untuk mengakses layanan dengan sertifikat klien dan kunci privat dalam topik ini. Ganti demo.alb.ingress.top dan alb-********.alb.aliyuncs.com dengan nilai yang diperoleh pada langkah sebelumnya.

      curl -H HOST:demo.alb.ingress.top -k https://alb-********.alb.aliyuncs.com --cert client.crt --key client.key

      Jika keluaran berikut dikembalikan, autentikasi bersama telah dikonfigurasi:

      old

(Opsional) Langkah 5: Nonaktifkan autentikasi bersama

  1. Jalankan perintah berikut untuk memodifikasi AlbConfig:

    kubectl edit albconfig <ALBCONFIG_NAME> # Ganti <ALBCONFIG_NAME> dengan nama AlbConfig.
  2. Atur bidang caEnabled menjadi false untuk menonaktifkan autentikasi bersama.

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: #...
    spec:
      config:
        #...
      listeners:
      - port: 443
        protocol: HTTPS
        caEnabled: false # Atur nilainya menjadi false.
        caCertificates:
        - CertificateId: 0e40dda998174723af39d37fcaf*****
        certificates:
          #...

Referensi