Mengonfigurasi TLS dan mTLS pada ingress Istio

Topik ini menjelaskan cara mengaktifkan TLS dan mTLS satu arah pada traffic masuk Istio.

Mengonfigurasi TLS satu arah

Gunakan TLS satu arah untuk mengamankan endpoint proxy API pada traffic masuk Istio. Untuk mengaktifkan TLS satu arah, Anda mengonfigurasi traffic masuk dengan pasangan sertifikat/kunci TLS atau Rahasia, seperti yang dijelaskan dalam opsi berikut.

Opsi 1: pasangan kunci/sertifikat

Berikan file kunci dan sertifikat SSL di properti virtualhosts dalam file penggantian Anda:

virtualhosts:
  - name: $ENVIRONMENT_GROUP_NAME
    sslCertPath: "$CERT_FILE"
    sslKeyPath: "$KEY_FILE"

Dengan $ENVIRONMENT_GROUP_NAME adalah nama grup lingkungan dengan alias host yang sesuai, dan $CERT_FILE serta $KEY_FILE adalah sertifikat dan kunci TLS . Lihat Membuat sertifikat TLS.

Opsi 2: Secret Kubernetes

Membuat Secret Kubernetes di istio-system namespace dan tambahkan nama Secret ke file penggantian:

  1. Buat Secret:
    kubectl create -n istio-system secret generic $SECRET_NAME  \
    --from-file=key=$KEY_FILE \
    --from-file=cert=$CERT_FILE
  2. Konfigurasi properti virtualhosts dalam file penggantian:
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: SIMPLE  # Note: SIMPLE is the default, so it is optional.
        sslSecret: $SECRET_NAME

Mengonfigurasi mTLS

Sebagai ganti TLS satu arah, Anda dapat mengonfigurasi mTLS di traffic masuk Istio. Ada dua pilihan untuk mengkonfigurasi mTLS, seperti yang dijelaskan di bawah ini.

Opsi 1: pasangan kunci/sertifikat dan file CA

Berikan sertifikat Certificate Authority (CA) dengan sertifikat SSL dan file kunci di Properti virtualhosts dalam file penggantian:

virtualhosts:
  - name: $ENVIRONMENT_GROUP_NAME
    tlsMode: MUTUAL
    caCertPath: "$CA_FILE"
    sslCertPath: "$CERT_FILE"
    sslKeyPath: "$KEY_FILE"

Dengan $ENVIRONMENT_GROUP_NAME adalah nama grup lingkungan dengan alias host yang sesuai, $CA_FILE adalah sertifikat yang diotorisasi, dan $CERT_FILE, serta $KEY_FILE adalah sertifikat dan kunci TLS . Lihat Membuat sertifikat TLS.

Opsi 2: Secret Kubernetes

Membuat dua secret Kubernetes di istio-system namespace. Rahasia pertama adalah untuk pasangan sertifikat/kunci SSL dan yang kedua adalah untuk CA. Kemudian, tambahkan ke file penggantian.
  1. Membuat dua secret Kubernetes di istio-system ruang nama:
    kubectl create -n istio-system secret generic $SECRET_NAME  \
    --from-file=key=$KEY_FILE \
    --from-file=cert=$CERT_FILE
  2. Buat rahasia untuk CA:
    kubectl create -n istio-system secret generic $SECRET_NAME-cacert  \
    --from-file=cacert=$CA_FILE
  3. Konfigurasi properti virtualhosts dalam file penggantian:
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: MUTUAL  # Note: Be sure to specify MUTUAL
        sslSecret: $SECRET_NAME