全部产品
Search
文档中心

Container Compute Service: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 informasi dalam skenario seperti keuangan, IoT, layanan internal perusahaan, serta sektor layanan publik yang melibatkan informasi pribadi.

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 membangun saluran aman. Server tidak dapat memverifikasi identitas klien.

  • Autentikasi bersama HTTPS: Klien mengunduh Sertifikat SSL atau TLS dari server untuk memverifikasi identitas server. Selain itu, klien mengirimkan Sertifikat SSL atau TLS miliknya ke server sebagai bukti identitas. Saluran aman hanya dibangun setelah klien dan server saling memverifikasi identitas. Dalam banyak kasus, server memiliki sertifikat otoritas sertifikat (CA), dan klien memiliki Sertifikat SSL atau TLS yang ditandatangani dan diterbitkan berdasarkan sertifikat CA root. 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

  • Sertifikat SSL atau TLS dikonfigurasi dengan mengikuti langkah-langkah di Konfigurasikan Sertifikat HTTPS untuk Komunikasi Terenkripsi.

  • Sertifikat CA root telah diperoleh. Anda dapat memperoleh sertifikat CA root melalui salah satu cara berikut:

    • Beli sertifikat di konsol Layanan Manajemen Sertifikat. Untuk informasi lebih lanjut, lihat Beli dan Aktifkan CA Privat.

    • Ikuti langkah-langkah dalam topik ini untuk menghasilkan sertifikat tanda tangan sendiri.

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

Anda dapat melakukan langkah-langkah berikut untuk menghasilkan sertifikat CA root dan mengunggahnya ke konsol Layanan Manajemen Sertifikat.

  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

    Setelah menjalankan perintah di atas, sistem akan meminta Anda untuk menentukan informasi tentang sertifikat. Blok kode sampel berikut menunjukkan parameter dan nilai contoh:

    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 []:

    Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Nama Negara

    Kode negara, yaitu kode dua huruf. Contohnya, cn mewakili Tiongkok. Parameter ini wajib.

    Nama Negara Bagian atau Provinsi

    Nama negara bagian atau provinsi. Parameter ini wajib.

    Nama Kota

    Nama kota. Parameter ini wajib.

    Nama Organisasi

    Nama organisasi, misalnya nama perusahaan. Parameter ini wajib.

    Nama Unit Organisasi

    Nama unit organisasi. Parameter ini wajib.

    Nama Umum

    Nama domain tempat sertifikat digunakan. Parameter ini opsional.

    Alamat Email

    Alamat email yang digunakan untuk menghubungi administrator sertifikat. Parameter ini opsional.

    Kata sandi tantangan

    Kata sandi yang digunakan untuk mengotentikasi akses ke CSR. Parameter ini opsional. Dalam contoh ini, parameter ini dibiarkan kosong.

    Nama perusahaan opsional

    Nama perusahaan. Parameter ini opsional. Dalam contoh ini, parameter ini dibiarkan kosong.

  3. Jalankan perintah berikut untuk membuat sertifikat CA root:

    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

    File ca.crt adalah sertifikat root yang diterbitkan oleh CA. File ca.csr adalah CSR yang dikirim ke CA. File ca.key adalah kunci privat. File ca.key dan ca.crt digunakan di Langkah 7 untuk mengonfigurasi sertifikat CA root tanda tangan sendiri.

    Penting

    Anda harus menjaga kerahasiaan kunci privat.

  4. Masuk ke konsol Layanan Manajemen Sertifikat. Di panel navigasi di sebelah kiri, klik Certificate Application Repository.

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

    Parameter

    Deskripsi

    Nama Repository

    Nama repository. Anda dapat menentukan nama kustom.

    Sumber Data

    Dalam contoh ini, klik Sertifikat yang Diunggah lalu pilih sertifikat privat yang dibeli dan diterbitkan dari penyedia layanan sertifikat pihak ketiga.

  6. Di halaman Certificate Application Repository, klik repository yang Anda buat. Di halaman Manage Certificates, klik Uploaded Certificates.

  7. 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

    Nama Paket

    Masukkan nama kustom untuk sertifikat yang ingin Anda unggah.

    Sertifikat CA

    Masukkan konten file yang dikodekan dalam format PEM dari sertifikat yang ingin Anda unggah.

    Anda dapat menggunakan editor teks untuk membuka file sertifikat dalam format PEM atau CRT. Lalu, salin kontennya ke bidang Sertifikat CA. Anda juga dapat mengklik Upload lalu pilih file sertifikat dari mesin lokal Anda untuk mengunggah konten file tersebut.

    Kunci Sertifikat

    Masukkan konten file yang dikodekan dalam format PEM dari sertifikat yang ingin Anda unggah.

Langkah 2: Hasilkan sertifikat klien

Anda dapat membeli sertifikat klien dari konsol Layanan Manajemen Sertifikat atau menerbitkan sertifikat klien menggunakan sertifikat CA tanda tangan sendiri.

Dalam contoh berikut, sertifikat CA tanda tangan sendiri yang dibuat di Langkah 1 digunakan untuk menerbitkan sertifikat klien, dan autentikasi bersama diaktifkan untuk listener berdasarkan sertifikat klien dan sertifikat server tanda tangan sendiri yang Anda buat.

  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
  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 dan CAkey sesuai dengan sertifikat root yang dibuat di Langkah 1.

  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

Langkah 3: Buat AlbConfig untuk mengaktifkan autentikasi bersama untuk listener

  1. Tentukan sertifikat server yang dibuat di Langkah 1 di parameter Certificates dari AlbConfig. Sertifikat tersebut diatur sebagai sertifikat server default.

    1. Masuk ke konsol Layanan Manajemen Sertifikat. Di panel navigasi di sebelah kiri, klik SSL Certificates.

    2. Di halaman SSL Certificates, klik ikon image.png di kolom Actions dan klik Details.

    3. Di panel Certificate Details, Anda dapat melihat informasi sertifikat.

  2. Tentukan pengenal sertifikat root yang dibuat di Langkah 1 di bidang CertificateId dari parameter CaCertificates dari AlbConfig.

    1. Masuk ke konsol Layanan Manajemen Sertifikat. Di panel navigasi di sebelah kiri, klik Certificate Application Repository.

    2. Di halaman Certificate Application Repository, klik repository yang Anda buat. Di halaman Manage Certificates, klik Details.

    3. Di panel Certificate Details, Anda dapat melihat pengenal sertifikat.

Contoh konfigurasi AlbConfig:

apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
  name: alb-demo
spec:
  config:
    name: alb-test
    addressType: Intranet
# Tentukan setidaknya dua vSwitch yang berada di zona berbeda. Pastikan zona tersebut didukung oleh Application Load Balancer (ALB) dan termasuk dalam virtual private cloud (VPC) yang sama dengan kluster.
    zoneMappings:
    - vSwitchId: vsw-2zednnurkug2xl4******
    - vSwitchId: vsw-2zeusdspvojoumx******
  listeners:
  - port: 443
    protocol: HTTPS
    caEnabled: true
    caCertificates:
    - CertificateId: 0e40dda998174723af39d37fcaf*****
    certificates:
    - CertificateId: 108*****-cn-hangzhou
      IsDefault: true

Langkah 4: Uji autentikasi bersama

  1. Buat file bernama coffee.yaml dan salin blok kode berikut ke file tersebut. File ini digunakan untuk menyebarkan layanan uji yang diekspos oleh Ingress. Layanan ini terkait dengan listener yang dikonfigurasi di Langkah 3.

    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 # Tambahkan catatan DNS untuk nama domain ini.
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: coffee-svc
                port:
                  number: 80
  2. Jalankan perintah berikut untuk menyebarkan layanan uji:

    kubectl apply -f coffee.yaml

    Keluaran yang diharapkan:

    deployment.apps/coffee created
    service/coffee-svc created
    ingress.networking.k8s.io/alb-ingress created
  3. Gunakan sertifikat klien yang dihasilkan di Langkah 2 untuk mengakses layanan.

    1. Masuk ke konsol ALB. Di bilah navigasi atas, pilih wilayah tempat instance ALB ditempatkan.

    2. Di halaman Instances, klik instance ALB.

    3. Di bagian Zone pada halaman instance details, peroleh alamat IP elastis (EIP) yang terkait dengan vSwitch dari instance ALB.

    4. Tambahkan catatan DNS ke file hosts untuk memetakan nama domain ke EIP.

      123.XX.XX.XX alb.ingress.alibaba.com
    5. Setelah catatan DNS ditambahkan, Anda dapat mengakses layanan menggunakan nama domain.

      Ganti alb.ingress.alibaba.com dengan nama domain aktual yang ingin Anda gunakan. Anda juga harus menentukan jalur file client.crt dan client.key.
      curl https://alb.ingress.alibaba.com/ --cert client.crt --key client.key

      Setelah menjalankan perintah tersebut, server akan mengembalikan respons untuk mengarahkan Anda ke halaman HTML.

Referensi