All Products
Search
Document Center

Container Compute Service:Tingkatkan keamanan layanan dengan autentikasi timbal balik HTTPS

Last Updated:Mar 26, 2026

HTTPS standar hanya memverifikasi server—klien mana pun dapat terhubung. Mutual TLS (mTLS) mengharuskan baik server maupun klien untuk menunjukkan sertifikat yang valid, sehingga hanya klien dengan sertifikat yang ditandatangani oleh CA tepercaya Anda yang dapat membuat koneksi. Dengan menerapkan mTLS pada pendengar Application Load Balancer (ALB), koneksi yang tidak sah ditolak sebelum mencapai backend Anda.

Pengaturan ini cocok untuk layanan keuangan, IoT, layanan internal perusahaan, dan aplikasi sektor publik yang menangani data pribadi.

Cara kerja

Jenis autentikasiServer diverifikasi oleh klienKlien diverifikasi oleh server
Satu arah (HTTPS standar)YaTidak
Mutual (mTLS)YaYa

Dalam autentikasi timbal balik, server menyimpan sertifikat CA dan klien menyimpan sertifikat SSL atau TLS yang ditandatangani oleh CA tersebut. ALB memvalidasi sertifikat klien terhadap sertifikat CA pada setiap koneksi. Saluran aman hanya dibentuk setelah kedua pihak saling memverifikasi identitasnya.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

(Opsional) Langkah 1: Generate sertifikat root CA self-signed

Generate sertifikat root CA secara lokal dan unggah ke Konsol Layanan Manajemen Sertifikat.

Generate sertifikat

  1. Buat kunci privat:

    openssl genrsa -out ca.key 4096
  2. Buat permintaan penandatanganan sertifikat (CSR):

    BidangDeskripsiWajib
    Country NameKode negara dua huruf, misalnya cn untuk TiongkokYa
    State or Province NameNama lengkap provinsi atau negara bagianYa
    Locality NameNama kotaYa
    Organization NameNama perusahaan atau organisasiYa
    Organizational Unit NameNama departemen atau unitYa
    Common NameNama domain untuk sertifikatTidak
    Email AddressEmail kontak administrator sertifikatTidak
    A challenge passwordPassword untuk mengautentikasi akses CSR. Biarkan kosong jika tidak diperlukanTidak
    An optional company nameBiarkan kosong jika tidak diperlukanTidak
    openssl req -new -out ca.csr -key ca.key

    Saat diminta, masukkan nilai untuk bidang-bidang berikut:

    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 []:a.alibaba.com
    A challenge password []:
    An optional company name []:
  3. Buat sertifikat root CA:

    • ca.crt — sertifikat root CA (digunakan di Langkah 3 untuk mengonfigurasi AlbConfig)

    • ca.csr — CSR yang dikirim ke CA

    • ca.key — kunci privat (digunakan di Langkah 2 untuk menandatangani sertifikat klien)

    Penting

    Jaga kerahasiaan ca.key. Siapa pun yang memiliki akses ke kunci privat dapat menerbitkan sertifikat klien yang tepercaya.

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

    Jalankan ls untuk memastikan file-file berikut tersedia:

    ca.crt  ca.csr  ca.key

Upload the CA certificate

  1. Login ke Konsol Layanan Manajemen Sertifikat. Di panel navigasi kiri, klik Certificate Application Repository.

  2. Klik Create Repository. Di panel yang muncul, atur parameter berikut lalu klik OK:

    ParameterDeskripsi
    Repository NameMasukkan nama kustom
    Data SourceKlik Uploaded Certificates, lalu pilih sertifikat pribadi yang dibeli dan diterbitkan dari penyedia layanan sertifikat pihak ketiga
  3. Klik repositori yang telah Anda buat. Di halaman Manage Certificates, klik Uploaded Certificates.

  4. Di panel CA Information, atur parameter berikut lalu klik Confirm and Enable:

    ParameterDeskripsi
    Package NameMasukkan nama kustom untuk sertifikat
    CA CertificatesTempel konten ca.crt dalam format PEM, atau klik Upload untuk memilih file
    Certificate KeyTempelkan konten berformat PEM dari ca.key

Langkah 2: Generate sertifikat klien

Gunakan sertifikat CA self-signed dari Langkah 1 untuk menerbitkan sertifikat klien. Sertifikat ini diserahkan oleh klien untuk mengautentikasi diri ke pendengar ALB.

  1. Generate kunci privat untuk sertifikat klien:

    openssl genrsa -out client.key 4096
  2. Generate CSR untuk sertifikat klien:

    openssl req -new -out client.csr -key client.key
  3. Tandatangani sertifikat klien dengan root CA dari Langkah 1:

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

    Jalankan ls untuk memastikan file-file berikut tersedia:

    client.crt  client.csr  client.key

Langkah 3: Konfigurasikan AlbConfig untuk mengaktifkan autentikasi timbal balik

Resource AlbConfig mendefinisikan instans ALB dan pendengarnya. Mengatur caEnabled: true pada pendengar akan mengaktifkan mTLS—ALB meminta dan memverifikasi sertifikat klien pada setiap koneksi HTTPS ke pendengar tersebut.

Anda memerlukan dua ID sertifikat dari Konsol Layanan Manajemen Sertifikat:

  • ID sertifikat server — navigasi ke SSL Certificates > ikon Actions > Details > panel Certificate Details

  • ID sertifikat root CA — navigasi ke Certificate Application Repository > repositori Anda > Manage Certificates > Details > panel Certificate Details

Terapkan AlbConfig dengan struktur berikut:

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb-demo
spec:
  config:
    name: alb-test
    addressType: Intranet
    # Tentukan minimal dua vSwitch di zona berbeda.
    # Zona tersebut harus didukung oleh ALB dan berada dalam virtual private cloud (VPC) yang sama dengan kluster.
    zoneMappings:
    - vSwitchId: vsw-2zednnurkug2xl4******
    - vSwitchId: vsw-2zeusdspvojoumx******
  listeners:
  - port: 443
    protocol: HTTPS
    caEnabled: true                                      # Mengaktifkan autentikasi timbal balik
    caCertificates:
    - CertificateId: 0e40dda998174723af39d37fcaf*****   # ID sertifikat root CA
    certificates:
    - CertificateId: 108*****-cn-hangzhou                # ID sertifikat server
      IsDefault: true

Langkah 4: Uji autentikasi timbal balik

Terapkan layanan uji dan verifikasi bahwa ALB menerapkan validasi sertifikat klien.

  1. Buat file bernama coffee.yaml dengan konten berikut:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: coffee
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: coffee
      template:
        metadata:
          labels:
            app: coffee
        spec:
          containers:
          - name: coffee
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest
            ports:
            - containerPort: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: coffee-svc
    spec:
      ports:
      - port: 80
        targetPort: 80
        protocol: TCP
      selector:
        app: coffee
      type: NodePort
    ---
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      annotations:
        alb.ingress.kubernetes.io/listen-ports: |
         [{"HTTPS": 443}]
      name: alb-ingress
    spec:
      ingressClassName: alb
      rules:
      - host: alb.ingress.alibaba.com  # Ganti dengan nama domain aktual Anda.
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: coffee-svc
                port:
                  number: 80
  2. Terapkan layanan uji:

    kubectl apply -f coffee.yaml

    Output yang diharapkan:

    deployment.apps/coffee created
    service/coffee-svc created
    ingress.networking.k8s.io/alb-ingress created
  3. Dapatkan alamat IP elastis (EIP) instans ALB:

    1. Login ke Konsol ALB dan pilih wilayah tempat instans ALB diterapkan.

    2. Di halaman Instances, klik instans ALB.

    3. Di bagian Zone pada halaman detail instans, temukan EIP yang terkait dengan vSwitch.

  4. Tambahkan rekaman DNS ke file hosts lokal Anda untuk memetakan nama domain ke EIP:

    123.XX.XX.XX  alb.ingress.alibaba.com
  5. Uji akses dengan sertifikat klien:

    curl https://alb.ingress.alibaba.com/ --cert client.crt --key client.key

    Server mengembalikan respons dan mengarahkan ke halaman HTML. Hal ini mengonfirmasi bahwa ALB menerima sertifikat klien.

Langkah selanjutnya

Referensi