Menyiapkan mTLS backend

Halaman ini memberikan petunjuk untuk menyiapkan mTLS backend menggunakan sertifikat mandiri untuk Load Balancer Aplikasi eksternal global.

Langkah-langkah untuk mengonfigurasi mTLS backend mirip dengan TLS autentikasi backend, kecuali Anda juga perlu membuat sertifikat untuk load balancer. Sertifikat ini, yang juga dikenal sebagai sertifikat klien, dilampirkan ke resource Konfigurasi Autentikasi Backend. Load balancer menggunakan sertifikat klien ini untuk mengautentikasi dirinya ke backend.

Untuk mengonfigurasi mTLS backend, Anda perlu melakukan hal berikut:

  • Buat resource konfigurasi kepercayaan yang terdiri dari root certificate dan intermediary certificate.
  • Buat sertifikat klien dan upload ke Pengelola Sertifikat.
  • Buat resource Konfigurasi Autentikasi Backend yang mereferensikan konfigurasi kepercayaan dan sertifikat klien.
  • Lampirkan resource Konfigurasi Autentikasi Backend ke layanan backend load balancer.

Sebelum memulai

Izin

Bagian ini mencantumkan izin yang diperlukan untuk mengonfigurasi mTLS backend.
Operasi Izin
Membuat konfigurasi kepercayaan certificatemanager.trustconfigs.create di project Google Cloud target
Buat sertifikat klien certificatemanager.certs.create di project Google Cloud target
Membuat resource Konfigurasi Autentikasi Backend
  • certificatemanager.certs.use pada sertifikat target
  • certificatemanager.trustconfigs.use pada konfigurasi kepercayaan target
  • networksecurity.backendauthenticationconfigs.create di project Google Cloud target
  • Melampirkan resource Konfigurasi Autentikasi Backend ke layanan backend load balancer
  • compute.backendservice.update pada layanan backend target
  • networksecurity.backendauthenticationconfigs.use pada resource Konfigurasi Autentikasi Backend target
  • Ringkasan penyiapan

    Bagian berikut menjelaskan langkah-langkah untuk mengonfigurasi mTLS backend berdasarkan arsitektur yang ditampilkan dalam diagram berikut:

    Komponen mTLS backend.
    Komponen mTLS backend (klik untuk memperbesar).

    Membuat root certificate dan intermediate certificate

    Bagian ini menggunakan library OpenSSL untuk membuat root certificate (trust anchor) dan intermediate certificate.

    Root certificate berada di bagian atas rantai sertifikat. Sertifikat perantara adalah bagian dari rantai kepercayaan kembali ke root certificate. Sertifikat intermediate ditandatangani secara kriptografis oleh root certificate. Saat load balancer menerima sertifikat server, load balancer akan memvalidasinya dengan membuat rantai kepercayaan dari sertifikat server kembali ke anchor kepercayaan yang dikonfigurasi.

    Gunakan perintah berikut untuk membuat root dan intermediate certificate.

    1. Buat file konfigurasi OpenSSL.

      Dalam contoh berikut, file konfigurasi (example.cnf) berisi bagian [ca_exts], yang menentukan ekstensi X.509 yang menandai sertifikat sebagai cocok untuk CA. Untuk mempelajari lebih lanjut persyaratan sertifikat root dan intermediate, lihat Persyaratan sertifikat.

      cat > example.cnf << EOF
      [req]
      distinguished_name = empty_distinguished_name
      
      [empty_distinguished_name]
      # Kept empty to allow setting via -subj command-line argument.
      
      [ca_exts]
      basicConstraints=critical,CA:TRUE
      keyUsage=keyCertSign
      extendedKeyUsage=serverAuth
      
      EOF
      
    2. Buat root certificate X.509 yang ditandatangani sendiri (root.cert). Root certificate ditandatangani sendiri dengan kunci pribadinya sendiri (root.key).

      openssl req -x509 \
          -new -sha256 -newkey rsa:2048 -nodes \
          -days 3650 -subj '/CN=root' \
          -config example.cnf \
          -extensions ca_exts \
          -keyout root.key -out root.cert
      
    3. Buat permintaan penandatanganan sertifikat (CSR) int.req untuk sertifikat perantara.

      openssl req -new \
          -sha256 -newkey rsa:2048 -nodes \
          -subj '/CN=int' \
          -config example.cnf \
          -extensions ca_exts \
          -keyout int.key -out int.req
      
    4. Tanda tangani CSR untuk membuat sertifikat perantara X.509 (int.cert). CSR ditandatangani menggunakan sertifikat root.

      openssl x509 -req \
          -CAkey root.key -CA root.cert \
          -set_serial 1 \
          -days 3650 \
          -extfile example.cnf \
          -extensions ca_exts \
          -in int.req -out int.cert
      

    Memformat sertifikat

    Untuk menyertakan sertifikat baru atau yang sudah ada di penyimpanan kepercayaan, format sertifikat menjadi satu baris dan simpan dalam variabel lingkungan sehingga dapat direferensikan oleh file YAML konfigurasi kepercayaan.

    export ROOT_CERT=$(cat root.cert | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g')
    
    export INTERMEDIATE_CERT=$(cat int.cert | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g')
    

    Membuat resource konfigurasi kepercayaan

    Konfigurasi kepercayaan adalah resource yang mewakili konfigurasi infrastruktur kunci publik (PKI) di Pengelola Sertifikat.

    Untuk membuat resource konfigurasi kepercayaan, selesaikan langkah-langkah berikut:

    Konsol

    1. Di konsol Google Cloud, buka halaman Certificate Manager.

      Buka Certificate Manager

    2. Di tab Trust Configs, klik Add Trust Config.

    3. Masukkan nama untuk konfigurasi.

    4. Untuk Location, pilih Global. Lokasi menunjukkan tempat resource konfigurasi kepercayaan disimpan. Untuk Load Balancer Aplikasi eksternal global, Anda perlu membuat resource konfigurasi kepercayaan global.

    5. Di bagian Trust store, klik Add trust anchor dan upload file sertifikat yang dienkode PEM, atau salin konten sertifikat.

    6. Klik Tambahkan.

    7. Di bagian Trust store, klik Add intermediate CA dan upload file sertifikat yang dienkode PEM, atau salin konten sertifikat. Langkah ini memungkinkan Anda menambahkan tingkat kepercayaan lain antara root certificate dan sertifikat server Anda.

    8. Klik Tambahkan untuk menambahkan CA perantara.

    9. Untuk menambahkan sertifikat yang Anda tambahkan ke daftar yang diizinkan, klik Tambahkan.

    10. Klik Buat.

    Pastikan resource konfigurasi kepercayaan baru muncul dalam daftar konfigurasi.

    gcloud

    1. Buat file YAML konfigurasi kepercayaan (trust_config.yaml) yang menentukan parameter konfigurasi kepercayaan. Contoh resource konfigurasi trust ini berisi trust store dengan trust anchor dan sertifikat perantara. Contoh resource konfigurasi kepercayaan ini membaca konten sertifikat dari variabel lingkungan yang dibuat di langkah Memformat sertifikat sebelumnya.

      cat << EOF > trust_config.yaml
      trustStores:
      - trustAnchors:
        - pemCertificate: "${ROOT_CERT}"
        intermediateCas:
        - pemCertificate: "${INTERMEDIATE_CERT}"
      EOF
      

      Untuk membuat trust store dengan anchor kepercayaan atau sertifikat intermediate tambahan, tambahkan baris pemCertificate di bagian yang sesuai.

    2. Untuk mengimpor file YAML konfigurasi kepercayaan, gunakan perintah gcloud certificate-manager trust-configs import:

      Untuk Load Balancer Aplikasi eksternal global, tentukan global sebagai lokasi tempat resource konfigurasi kepercayaan disimpan.

      gcloud certificate-manager trust-configs import TRUST_CONFIG_NAME  \
          --source=trust_config.yaml \
          --location=global
      

      Ganti kode berikut:

      • TRUST_CONFIG_NAME: nama resource konfigurasi kepercayaan

    Buat sertifikat klien

    Dalam mTLS backend, load balancer bertindak sebagai klien dan backend bertindak sebagai server.

    Untuk mengaktifkan mTL backend, load balancer perlu membuktikan identitasnya ke backend. Autentikasi ini dilakukan menggunakan sertifikat klien yang ditampilkan load balancer ke backend. Server backend perlu memvalidasi sertifikat klien menggunakan rantai kepercayaannya sendiri.

    Saat terhubung ke server backend, load balancer menetapkan Server Name Indication (SNI) ke nama host yang ditentukan dalam konfigurasi TLS. Server backend memilih sertifikat SSL/TLS yang sesuai berdasarkan nilai SNI ini. Load balancer mengharapkan nilai SNI cocok dengan Nama Alternatif Subjek (SAN) yang tercantum dalam sertifikat server backend.

    Sertifikat klien dapat berupa sertifikat terkelola dari CA Pribadi melalui Certificate Authority Service atau sertifikat PKI pribadi yang dikelola sendiri. Dalam contoh ini, sertifikat klien diterbitkan menggunakan sertifikat yang dikelola sendiri. Bagian ini menggunakan library OpenSSL untuk membuat sertifikat root CA dan sertifikat klien.

    Untuk membuat sertifikat klien, selesaikan langkah-langkah berikut:

    1. Buat file konfigurasi OpenSSL.

      Dalam contoh berikut, file konfigurasi (example.cnf) berisi bagian [ca_exts], yang menentukan ekstensi X.509 yang menandai sertifikat sebagai cocok untuk otoritas sertifikasi (CA). Atribut extendedKeyUsage ditetapkan ke clientAuth Untuk mempelajari lebih lanjut persyaratan untuk sertifikat root dan intermediate, lihat Persyaratan sertifikat.

        cat > example.cnf << EOF
        [req]
        distinguished_name = empty_distinguished_name
      
        [empty_distinguished_name]
        # Kept empty to allow setting via -subj command-line argument.
      
        [ca_exts]
        basicConstraints=critical,CA:TRUE
        keyUsage=keyCertSign
        extendedKeyUsage=clientAuth
      
        EOF
      
    2. Buat sertifikat root CA X.509 yang ditandatangani sendiri (root.cert). Sertifikat root ditandatangani sendiri dengan kunci pribadinya sendiri (root.key).

        openssl req -x509 \
            -new -sha256 -newkey rsa:2048 -nodes \
            -days 3650 -subj '/CN=root' \
            -config example.cnf \
            -extensions ca_exts \
            -keyout root.key -out root.cert
      
    3. Buat file konfigurasi untuk membuat CSR untuk sertifikat klien.

      File konfigurasi berikut (client.config) berisi bagian [extension_requirements], yang menentukan ekstensi X.509 yang akan disertakan dalam CSR. Untuk mempelajari persyaratan sertifikat klien lebih lanjut, lihat Persyaratan sertifikat.

        cat > client.config << EOF
        [req]
        default_bits              = 2048
        req_extensions            = extension_requirements
        distinguished_name        = dn_requirements
        prompt                    = no
      
        [extension_requirements]
        basicConstraints          = critical, CA:FALSE
        keyUsage                  = critical, nonRepudiation, digitalSignature, keyEncipherment
        extendedKeyUsage          = clientAuth
      
        [dn_requirements]
        countryName               = US
        stateOrProvinceName       = California
        localityName              = San Francisco
        0.organizationName        = example
        organizationalUnitName    = test
        commonName                = test.example.com
        emailAddress              = test@example.com
      
        EOF
      
    4. Buat CSR (client.csr) untuk sertifikat klien.

        openssl req -new \
            -config client.config \
            -keyout client.key -out client.csr
      
    5. Buat sertifikat klien (client.cert) dari CSR. CSR ditandatangani oleh sertifikat root CA untuk menerbitkan sertifikat klien X.509.

        openssl x509 -req \
            -CAkey root.key -CA root.cert \
            -days 365 \
            -extfile client.config \
            -extensions extension_requirements \
            -in client.csr -out client.cert
      

    Mengupload sertifikat klien ke Pengelola Sertifikat

    Untuk mengupload sertifikat klien ke Pengelola Sertifikat, selesaikan langkah-langkah berikut:

    Konsol

    1. Di konsol Google Cloud, buka halaman Certificate Manager.

      Buka Certificate Manager

    2. Di tab Certificates, klik Add Certificate.

    3. Masukkan nama untuk sertifikat.

      Nama ini harus unik untuk project.

    4. Opsional: Masukkan deskripsi untuk sertifikat. Deskripsi ini membantu Anda mengidentifikasi sertifikat tertentu nanti.

    5. Untuk Location, pilih Global.

    6. Untuk Cakupan, pilih Autentikasi Klien.

    7. Untuk Certificate type, pilih Create Self-managed certificate.

    8. Untuk kolom Certificate, upload file sertifikat yang dienkode PEM, atau salin dan tempel konten sertifikat yang dienkode PEM.

    9. Untuk kolom Sertifikat kunci pribadi, upload kunci pribadi berenkode PEM yang tidak dilindungi dengan frasa sandi, atau salin dan tempelkan konten kunci pribadi berenkode PEM.

    10. Tentukan label yang akan dikaitkan dengan sertifikat. Anda dapat menambahkan lebih dari satu label, jika diperlukan. Untuk menambahkan label, klik tombol Tambahkan label, lalu tentukan key dan value untuk label Anda.

    11. Klik Buat. Pastikan sertifikat baru muncul dalam daftar sertifikat.

    gcloud

    1. Untuk mengupload sertifikat klien ke Pengelola Sertifikat, gunakan perintah gcloud certificate-manager certificates create. Cakupan sertifikat ini adalah client-auth, yang menunjukkan bahwa sertifikat ini digunakan sebagai sertifikat klien di mTLS backend.

      gcloud certificate-manager certificates create CLIENT_ CERTIFICATE_NAME \
          --certificate-file=client.cert \
          --private-key-file=client.key \
          --scope=client-auth \
          --global
      

      Ganti kode berikut:

      • CLIENT_CERTIFICATE_NAME: nama resource sertifikat klien. Sertifikat klien ini dengan cakupan client-auth digunakan oleh resource Konfigurasi Autentikasi Backend.

    Membuat resource Konfigurasi Autentikasi Backend

    Untuk membuat resource Konfigurasi Autentikasi Backend (BackendAuthenticationConfig), selesaikan langkah-langkah berikut.

    Konsol

    1. Di konsol Google Cloud, buka halaman Authentication Configuration.

      Buka Authentication Configuration

    2. Di tab Backend Authentication, klik Create.
    3. Masukkan nama untuk resource Konfigurasi Autentikasi Backend.
    4. Pilih resource sertifikat klien yang Anda buat sebelumnya.
    5. Opsional: Pilih root of trust publik.
    6. Pilih resource konfigurasi kepercayaan yang Anda buat sebelumnya.
    7. Klik Buat.

    Pastikan resource Backend Authentication Config ditampilkan.

    gcloud

    1. Buat file YAML yang secara deklaratif menentukan berbagai atribut resource Backend Authentication Config.

      Lampirkan sertifikat klien ke resource Konfigurasi Autentikasi Backend untuk mengaktifkan mTLS backend.

      cat << EOF > BACKEND_AUTHENTICATION_CONFIG_RESOURCE_FILENAME.yaml
      name: projects/PROJECT_ID/locations/global/backendAuthenticationConfigs/BACKEND_AUTH_CONFIG_NAME
      trustConfig: projects/PROJECT_ID/locations/global/trustConfigs/TRUST_CONFIG_NAME
      clientCertificate: projects/PROJECT_ID/locations/global/certificates/CLIENT_ CERTIFICATE_NAME
      wellKnownRoots: PUBLIC_ROOTS
      EOF
      

      Ganti kode berikut:

      • BACKEND_AUTHENTICATION_CONFIG_RESOURCE_FILENAME : nama file YAML tempat resource Konfigurasi Autentikasi Backend ditentukan.
      • PROJECT_ID: ID project Google Cloud Anda
      • BACKEND_AUTH_CONFIG_NAME: nama resource Konfigurasi Autentikasi Backend
      • TRUST_CONFIG_NAME: nama resource konfigurasi kepercayaan yang Anda buat sebelumnya.
      • CLIENT_CERTIFICATE_NAME: nama resource sertifikat klien yang Anda buat sebelumnya.
    2. Untuk mengimpor resource Konfigurasi Autentikasi Backend, gunakan perintah gcloud beta network-security backend-authentication-configs import:

      gcloud beta network-security backend-authentication-configs import BACKEND_AUTH_CONFIG_NAME \
         --source=BACKEND_AUTHENTICATION_CONFIG_RESOURCE_FILENAME.yaml \
         --location=global
      

      Ganti kode berikut:

      • BACKEND_AUTH_CONFIG_NAME: nama resource Konfigurasi Autentikasi Backend

      • BACKEND_AUTHENTICATION_CONFIG_RESOURCE_FILENAME: nama file YAML tempat resource Konfigurasi Autentikasi Backend ditentukan.

    Melampirkan resource Konfigurasi Autentikasi Backend ke layanan backend load balancer

    Untuk melampirkan resource Konfigurasi Autentikasi Backend (BackendAuthenticationConfig) ke layanan backend load balancer, selesaikan langkah-langkah berikut.

    Konsol

    1. Di konsol Google Cloud, buka halaman Load balancing.

      Buka Load balancing

    2. Di tab Backends, pilih layanan backend yang memerlukan TLS backend yang diautentikasi dan mTLS backend.

    3. Klik Edit.

    4. Luaskan bagian Advanced configurations.

    5. Di bagian Backend authentication, centang kotak Enable.

    6. Opsional: Tentukan nama host SNI dan SAN yang diterima untuk memvalidasi sertifikat backend.

    7. Untuk melampirkan resource Backend Authentication Config ke layanan backend, dalam daftar Backend Authentication Config, pilih resource Backend Authentication Config.

    8. Klik Lanjutkan.

    9. Untuk memperbarui setelan layanan backend, klik Update.

    gcloud

    1. Untuk mencantumkan semua resource layanan backend dalam project Anda, gunakan perintah gcloud compute backend-services list.

      gcloud compute backend-services list
      

      Catat nama layanan backend yang akan dilampirkan resource BackendAuthenticationConfig. Nama ini disebut sebagai BACKEND_SERVICE_NAME dalam langkah-langkah berikut.

    2. Untuk mengekspor konfigurasi layanan backend ke file, gunakan perintah gcloud beta compute backend-services export.

      gcloud beta compute backend-services export BACKEND_SERVICE_NAME \
          --destination=BACKEND_SERVICE_FILENAME.yaml \
          --global
      

      Ganti kode berikut:

      • BACKEND_SERVICE_NAME: nama layanan backend
      • BACKEND_SERVICE_FILENAME: nama dan jalur ke file YAML tempat konfigurasi layanan backend diekspor
    3. Perbarui atribut tlsSettings layanan backend, dengan mengarahkannya ke resource Backend Authentication Config. Selain itu, Anda dapat mengonfigurasi nama host SNI dan SAN yang diterima di layanan backend untuk memvalidasi sertifikat backend.

        cat << EOF >> BACKEND_SERVICE_FILENAME.yaml
        tlsSettings:
          authenticationConfig: //networksecurity.googleapis.com/projects/PROJECT_ID/locations/global/backendAuthenticationConfigs/BACKEND_AUTH_CONFIG_NAME
          sni: examplepetstore.com
          subjectAltNames:
          - dnsName: examplepetstore.com
          - dnsName: api.examplepetstore.com
        EOF
        

      Nilai SNI dan SAN dalam deklarasi YAML sebelumnya hanya dimaksudkan sebagai contoh. Anda dapat menggantinya dengan nilai dunia nyata yang relevan dengan penyiapan Anda.

      Ganti kode berikut:

      • BACKEND_SERVICE_FILENAME: nama file YAML tempat konfigurasi layanan backend diekspor

      • PROJECT_ID: ID project Google Cloud Anda

      • BACKEND_AUTH_CONFIG_NAME: nama resource Konfigurasi Autentikasi Backend

    4. Untuk mengimpor konfigurasi layanan backend yang diperbarui dari file, gunakan perintah gcloud beta compute backend-services import.

      gcloud beta compute backend-services import BACKEND_SERVICE_NAME \
          --source=BACKEND_SERVICE_FILENAME.yaml \
          --global
      

      Ganti kode berikut:

      • BACKEND_SERVICE_NAME: nama layanan backend
      • BACKEND_SERVICE_FILENAME: nama file YAML konfigurasi layanan backend

    Membuat sertifikat server backend

    Bagian ini menyediakan opsi konfigurasi tambahan untuk membuat sertifikat server (daun) yang ditandatangani oleh sertifikat perantara, yang merupakan bagian dari konfigurasi kepercayaan. Hal ini memastikan bahwa rantai kepercayaan dapat dibuat dari sertifikat server kembali ke anchor kepercayaan.

    Jika Anda telah membuat resource konfigurasi kepercayaan yang berisi sertifikat perantara, lakukan hal berikut:

    1. Buat file konfigurasi untuk membuat CSR untuk sertifikat server.

      File konfigurasi berikut (server.config) berisi bagian [extension_requirements], yang menentukan ekstensi X.509 yang akan disertakan dalam CSR. Untuk mempelajari persyaratan sertifikat server lebih lanjut, lihat Persyaratan sertifikat.

      cat > server.config << EOF
      [req]
      default_bits              = 2048
      req_extensions            = extension_requirements
      distinguished_name        = dn_requirements
      prompt                    = no
      
      [extension_requirements]
      basicConstraints          = critical, CA:FALSE
      keyUsage                  = critical, nonRepudiation, digitalSignature, keyEncipherment
      extendedKeyUsage          = serverAuth
      subjectAltName            = @alt_names
      
      [alt_names]
      DNS.1 = examplepetstore.com
      DNS.2 = api.examplepetstore.com
      
      [dn_requirements]
      countryName               = US
      stateOrProvinceName       = California
      localityName              = San Francisco
      0.organizationName        = example
      organizationalUnitName    = test
      commonName                = examplepetstore.com
      emailAddress              = test@examplepetstore.com
      
      EOF
      
    2. Buat CSR (server.csr) untuk sertifikat server.

      openssl req -new \
          -sha256 -newkey rsa:2048 -nodes \
          -config server.config \
          -keyout server.key -out server.csr
      
    3. Tanda tangani CSR untuk menerbitkan sertifikat server X.509 (server.cert). CSR ditandatangani oleh sertifikat perantara.

      openssl x509 -req \
          -CAkey int.key -CA int.cert \
          -days 365 \
          -extfile server.config \
          -extensions extension_requirements \
          -in server.csr -out server.cert
      

      Saat load balancer terhubung ke server backend, server backend akan menampilkan sertifikatnya (server.cert) untuk mengautentikasi dirinya ke load balancer, sehingga menyelesaikan proses autentikasi backend.

    Opsi konfigurasi SSL tambahan di server web Apache

    Bagian opsional ini akan memandu Anda melalui proses untuk memperbarui opsi konfigurasi SSL di server Apache berdasarkan sertifikat klien dan server yang Anda buat sebelumnya.

    1. Salin kunci pribadi server (server.key) dan sertifikat server (server.cert) ke server web Apache.

          cat > server.key << EOF
          -----BEGIN PRIVATE KEY-----
          [...]
          -----END PRIVATE KEY-----
          EOF
      
          sudo cp ./server.key /etc/ssl/private/server.key
          

      Ganti [...] dengan kunci pribadi server berenkode PEM yang Anda buat sebelumnya.

          cat > server.cert << EOF
          -----BEGIN CERTIFICATE-----
          [...]
          -----END CERTIFICATE-----
          EOF
      
          sudo cp ./server.cert /etc/ssl/certs/server.cert
          

      Ganti [...] dengan sertifikat server yang dienkode PEM yang Anda buat sebelumnya.

    2. Upload sertifikat klien ke konfigurasi kepercayaan server untuk memvalidasi sertifikat klien.

            cat > client.cert << EOF
            -----BEGIN CERTIFICATE-----
            [...]
            -----END CERTIFICATE-----
            EOF
      
            sudo cp ./client.cert /etc/ssl/certs/client.cert
            

      Ganti [...] dengan sertifikat klien yang dienkode PEM yang Anda buat sebelumnya.

    3. Perbarui konfigurasi SSL server web Apache.

      Perbarui konfigurasi SSL Apache untuk mengaktifkan traffic HTTPS menggunakan sertifikat SSL dan kunci pribadi yang ditentukan.

          sudo vi /etc/apache2/sites-available/default-ssl.conf
      
          ----
          SSLCertificateFile      /etc/ssl/certs/server.cert
          SSLCertificateKeyFile /etc/ssl/private/server.key
          ----
          

      Perbarui konfigurasi SSL Apache untuk mewajibkan autentikasi sertifikat klien dan menentukan sertifikat CA untuk validasi.

          sudo vi /etc/apache2/sites-available/default-ssl.conf
      
          ----
          SSLVerifyClient require
          SSLVerifyDepth 5
          SSLCACertificateFile /etc/ssl/certs/client.cert
          ----
          
    4. Buat ulang hash sertifikat CA.

          sudo c_rehash /etc/ssl/certs/
          
    5. Mulai ulang server web Apache untuk menerapkan perubahan.

          sudo systemctl restart apache2.service
          

    Langkah berikutnya