Menggunakan sertifikat SSL yang dikelola sendiri

Sertifikat SSL yang dikelola sendiri adalah sertifikat yang Anda peroleh, sediakan, dan perpanjang sendiri. Anda dapat menggunakan referensi ini untuk mengamankan komunikasi antara klien dan load balancer.

Sertifikat yang dikelola sendiri dapat berupa kombinasi dari jenis sertifikat berikut:

  • Validasi Domain (DV)
  • Validasi Organisasi (OV)
  • Validasi yang Diperluas (EV)

Sertifikat yang dikelola sendiri didukung dengan load balancer berikut:

  • Sertifikat global
    • Load Balancer Aplikasi eksternal global
    • Load Balancer Aplikasi Klasik
    • Load Balancer Jaringan proxy eksternal (dengan proxy SSL target)
  • Sertifikat regional
    • Load Balancer Aplikasi eksternal regional
    • Load Balancer Aplikasi internal regional

Halaman ini menjelaskan proses mendapatkan sertifikat Compute Engine yang valid, lalu mengupload sertifikat Anda untuk membuat resource sertifikat SSL Google Cloud.

Untuk membuat sertifikat yang dikelola Google menggunakan Pengelola Sertifikat, lihat Ringkasan deployment.

Sebelum memulai

Izin

Untuk melakukan tugas dalam panduan ini, Anda harus dapat membuat dan mengubah sertifikat SSL di project. Anda dapat melakukannya jika salah satu hal berikut berlaku:

  • Anda adalah Pemilik atau Editor project (roles/owner atau roles/editor).
  • Anda memiliki peran Compute Security Admin (compute.securityAdmin) dan peran Compute Network Admin (compute.networkAdmin) dalam project.
  • Anda memiliki peran khusus untuk project yang menyertakan izin compute.sslCertificates.* dan satu atau kedua izin compute.targetHttpsProxies.* dan compute.targetSslProxies.*, bergantung pada jenis load balancer yang Anda gunakan.

Langkah 1: Buat kunci pribadi dan sertifikat

Jika Anda sudah memiliki kunci pribadi dan sertifikat dari certificate authority (CA), lewati bagian ini dan buka Membuat resource sertifikat SSL.

Memilih atau membuat kunci pribadi

Sertifikat SSL Google Cloud menyertakan kunci pribadi dan sertifikat itu sendiri, keduanya dalam format PEM. Kunci pribadi Anda harus memenuhi kriteria berikut:

  • Setelan tersebut harus dalam format PEM.
  • File ini tidak dapat dilindungi oleh frasa sandi. Google Cloud menyimpan kunci pribadi Anda dalam format terenkripsinya sendiri.
  • Algoritma enkripsinya harus RSA-2048 atau ECDSA P-256.

Untuk membuat kunci pribadi baru, gunakan salah satu perintah OpenSSL berikut.

  • Buat kunci pribadi RSA-2048:

    openssl genrsa -out PRIVATE_KEY_FILE 2048
    
  • Buat kunci pribadi ECDSA P-256:

    openssl ecparam -name prime256v1 -genkey -noout -out PRIVATE_KEY_FILE
    

Ganti PRIVATE_KEY_FILE dengan jalur dan nama file untuk file kunci pribadi baru.

Membuat permintaan penandatanganan sertifikat (CSR)

Setelah memiliki kunci pribadi, Anda dapat membuat permintaan penandatanganan sertifikat (CSR) dalam format PEM menggunakan OpenSSL. CSR Anda harus memenuhi kriteria berikut:

  • Setelan tersebut harus dalam format PEM.
  • Atribut ini harus memiliki nama umum (CN) atau nama alternatif subjek (SAN). Secara praktis, sertifikat Anda harus berisi kedua atribut CN dan SAN, meskipun untuk satu domain—klien modern, seperti versi macOS dan iOS saat ini tidak hanya mengandalkan atribut CN.

Untuk membuat CSR, ikuti langkah-langkah berikut:

  1. Buat file konfigurasi OpenSSL. Dalam contoh berikut, nama alternatif subjek ditentukan dalam [sans_list].

    cat <<'EOF' >CONFIG_FILE
    [req]
    default_bits              = 2048
    req_extensions            = extension_requirements
    distinguished_name        = dn_requirements
    prompt                    = no
    
    [extension_requirements]
    basicConstraints          = CA:FALSE
    keyUsage                  = nonRepudiation, digitalSignature, keyEncipherment
    subjectAltName            = @sans_list
    
    [dn_requirements]
    countryName               = Country Name (2 letter code)
    stateOrProvinceName       = State or Province Name (full name)
    localityName              = Locality Name (eg, city)
    0.organizationName        = Organization Name (eg, company)
    organizationalUnitName    = Organizational Unit Name (eg, section)
    commonName                = Common Name (e.g. server FQDN or YOUR name)
    emailAddress              = Email Address
    
    [sans_list]
    DNS.1                     = SUBJECT_ALTERNATIVE_NAME_1
    DNS.2                     = SUBJECT_ALTERNATIVE_NAME_2
    
    EOF
    
  2. Jalankan perintah OpenSSL berikut untuk membuat file permintaan penandatanganan sertifikat (CSR). Perintah ini bersifat interaktif; Anda akan diminta untuk memasukkan atribut kecuali nama alternatif subjek, yang Anda tentukan di [sans_list] dari CONFIG_FILE pada langkah sebelumnya.

    openssl req -new -key PRIVATE_KEY_FILE \
        -out CSR_FILE \
        -config CONFIG_FILE
    

Untuk kedua langkah tersebut, ganti hal berikut:

  • CONFIG_FILE: jalur, termasuk nama file, untuk file konfigurasi OpenSSL (Anda dapat menghapus file setelah menyelesaikan prosedur ini)
  • SUBJECT_ALTERNATIVE_NAME_1 dan SUBJECT_ALTERNATIVE_NAME_2: Nama Alternatif Subjek untuk sertifikat Anda

    Jika sertifikat hanya untuk satu nama host, Anda hanya boleh menentukan satu nama alternatif subjek yang cocok dengan Nama Umum. Jika Anda memerlukan lebih dari dua nama alternatif subjek, tambahkan ke file konfigurasi, dengan menambahkan angka setelah DNS (DNS.3, DNS.4, dll.).

  • PRIVATE_KEY_FILE: jalur ke file kunci pribadi

  • CSR_FILE: jalur, termasuk nama file, untuk CSR

Menandatangani CSR

Saat menandatangani CSR, Certificate Authority (CA) menggunakan kunci pribadinya sendiri untuk membuat sertifikat. Gunakan salah satu metode berikut untuk menandatangani CSR:

Menggunakan CA tepercaya secara publik

Jika Anda meminta CA tepercaya secara publik untuk menandatangani CSR, sertifikat yang dihasilkan akan dipercaya oleh semua klien yang memercayai CA publik tersebut. Untuk membuat sertifikat yang ditandatangani, CA publik hanya memerlukan CSR Anda.

Menggunakan CA internal Anda sendiri

Jika mengelola CA sendiri, Anda dapat menggunakannya untuk menandatangani CSR. Menggunakan CA untuk menandatangani CSR akan membuat sertifikat yang tepercaya secara internal saat klien Anda juga telah dikonfigurasi untuk memercayai CA Anda sendiri.

Gunakan sertifikat yang ditandatangani sendiri

Jika Anda menggunakan kunci pribadi yang sama dengan yang digunakan untuk membuat CSR guna menandatangani CSR, Anda telah membuat sertifikat yang ditandatangani sendiri. Anda hanya boleh menggunakan sertifikat yang ditandatangani sendiri untuk pengujian.

Google Cloud tidak mendukung verifikasi sisi klien untuk sertifikat server yang ditandatangani sendiri. Oleh karena itu, Anda harus mengonfigurasi klien untuk melewati validasi sertifikat. Misalnya, Anda dapat membuat klien browser web yang menampilkan pesan yang menanyakan apakah Anda ingin memercayai sertifikat yang ditandatangani sendiri.

Jika Anda mengelola CA sendiri, atau jika Anda ingin membuat sertifikat yang ditandatangani sendiri untuk pengujian, Anda dapat menggunakan perintah OpenSSL berikut:

openssl x509 -req \
    -signkey PRIVATE_KEY_FILE \
    -in CSR_FILE \
    -out CERTIFICATE_FILE \
    -extfile CONFIG_FILE \
    -extensions extension_requirements \
    -days TERM

Ganti kode berikut:

  • PRIVATE_KEY_FILE: jalur ke kunci pribadi untuk CA Anda; jika membuat sertifikat yang ditandatangani sendiri untuk pengujian, kunci pribadi ini sama dengan yang digunakan untuk membuat CSR
  • CSR_FILE: jalur ke CSR
  • CERTIFICATE_FILE: jalur ke file sertifikat yang akan dibuat
  • TERM: jumlah hari, dari sekarang, selama sertifikat harus dianggap valid oleh klien yang memverifikasinya

Karakter pengganti dalam nama umum

Sertifikat SSL yang dikelola sendiri dapat menggunakan karakter pengganti di nama umum. Misalnya, sertifikat dengan nama umum *.example.com. cocok dengan nama host www.example.com dan foo.example.com, tetapi tidak cocok dengan a.b.example.com atau example.com. Saat memilih sertifikat, load balancer selalu lebih memilih untuk mencocokkan nama host dengan sertifikat tanpa karakter pengganti daripada sertifikat dengan karakter pengganti.

Sertifikat dengan fragmen karakter pengganti, seperti f*.example.com, tidak didukung.

Langkah 2: Buat resource sertifikat SSL yang dikelola sendiri

Sebelum dapat membuat resource sertifikat SSL Google Cloud, Anda harus memiliki kunci pribadi dan sertifikat. Lihat Membuat kunci pribadi dan sertifikat jika Anda belum membuatnya atau mendapatkannya.

Setelah membuat sertifikat, Anda tidak dapat mengubah cakupannya dari global menjadi regional, atau dari regional menjadi global.

Konsol

Anda dapat menggunakan sertifikat SSL global di tab Sertifikat Klasik di Konsol Google Cloud. Sertifikat SSL regional tidak dapat dibuat di konsol Google Cloud. Gunakan gcloud atau REST API.

  1. Buka tab Sertifikat Klasik di konsol Google Cloud.
    Buka Sertifikat Klasik
  2. Klik Buat sertifikat SSL.
  3. Masukkan nama dan deskripsi opsional untuk sertifikat.
  4. Pilih Upload sertifikat saya.
  5. Tempelkan sertifikat Anda atau klik Upload untuk membuka file sertifikat.
    Anda dapat memilih untuk menyertakan rantai sertifikat CA dalam file yang sama dengan sertifikat. Google Cloud tidak memvalidasi rantai sertifikat untuk Anda – validasi adalah tanggung jawab Anda.
  6. Tempelkan kunci pribadi Anda atau klik Upload untuk membuka file kunci pribadi Anda.
  7. Klik Create.

gcloud

Untuk membuat sertifikat SSL global, gunakan perintah gcloud compute ssl-certificates create dengan flag --global:

gcloud compute ssl-certificates create CERTIFICATE_NAME \
    --certificate=CERTIFICATE_FILE \
    --private-key=PRIVATE_KEY_FILE \
    --global

Untuk membuat sertifikat SSL regional, gunakan perintah gcloud compute ssl-certificates create dengan flag --region:

gcloud compute ssl-certificates create CERTIFICATE_NAME \
    --certificate=CERTIFICATE_FILE \
    --private-key=PRIVATE_KEY_FILE \
    --region=REGION

Ganti kode berikut:

  • CERTIFICATE_NAME: nama resource sertifikat yang akan dibuat
  • CERTIFICATE_FILE: jalur ke file sertifikat berformat PEM

    Anda dapat memilih untuk menyertakan rantai sertifikat CA dalam file yang sama dengan sertifikat. Google Cloud tidak memvalidasi rantai sertifikat untuk Anda—validasi adalah tanggung jawab Anda.

  • PRIVATE_KEY_FILE: jalur ke kunci pribadi berformat PEM; kunci pribadi tidak dapat dilindungi oleh frasa sandi

  • REGION: jika berlaku, region untuk sertifikat SSL regional

    Jika resource sertifikat ini ditujukan untuk Load Balancer Aplikasi internal atau Load Balancer Aplikasi eksternal regional, region-nya harus sama dengan region load balancer.

API

Untuk menggunakan metode API, Anda harus membaca file sertifikat dan kunci pribadi terlebih dahulu karena permintaan API harus mengirim konten file.

Baca file sertifikat dan kunci pribadi, lalu buat sertifikat SSL. Contoh berikut menunjukkan cara melakukannya dengan Python.

Untuk sertifikat SSL global, gunakan metode API sslCertificates.insert:

from pathlib import Path
from pprint import pprint
from typing import Union

from googleapiclient import discovery


def create_certificate(
    project_id: str,
    certificate_file: Union[str, Path],
    private_key_file: Union[str, Path],
    certificate_name: str,
    description: str = "Certificate created from a code sample.",
) -> dict:
    """
    Create a global SSL self-signed certificate within your Google Cloud project.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        certificate_file: path to the file with the certificate you want to create in your project.
        private_key_file: path to the private key you used to sign the certificate with.
        certificate_name: name for the certificate once it's created in your project.
        description: description of the certificate.

    Returns:
        Dictionary with information about the new global SSL self-signed certificate.
    """
    service = discovery.build("compute", "v1")

    # Read the cert into memory
    with open(certificate_file) as f:
        _temp_cert = f.read()

    # Read the private_key into memory
    with open(private_key_file) as f:
        _temp_key = f.read()

    # Now that the certificate and private key are in memory, you can create the
    # certificate resource
    ssl_certificate_body = {
        "name": certificate_name,
        "description": description,
        "certificate": _temp_cert,
        "privateKey": _temp_key,
    }
    request = service.sslCertificates().insert(
        project=project_id, body=ssl_certificate_body
    )
    response = request.execute()
    pprint(response)
    return response

Untuk sertifikat SSL regional, gunakan metode API regionSslCertificates.insert:

from pathlib import Path
from pprint import pprint
from typing import Union

from googleapiclient import discovery


def create_regional_certificate(
    project_id: str,
    region: str,
    certificate_file: Union[str, Path],
    private_key_file: Union[str, Path],
    certificate_name: str,
    description: str = "Certificate created from a code sample.",
) -> dict:
    """
    Create a regional SSL self-signed certificate within your Google Cloud project.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        region: name of the region you want to use.
        certificate_file: path to the file with the certificate you want to create in your project.
        private_key_file: path to the private key you used to sign the certificate with.
        certificate_name: name for the certificate once it's created in your project.
        description: description of the certificate.

        Returns:
        Dictionary with information about the new regional SSL self-signed certificate.
    """
    service = discovery.build("compute", "v1")

    # Read the cert into memory
    with open(certificate_file) as f:
        _temp_cert = f.read()

    # Read the private_key into memory
    with open(private_key_file) as f:
        _temp_key = f.read()

    # Now that the certificate and private key are in memory, you can create the
    # certificate resource
    ssl_certificate_body = {
        "name": certificate_name,
        "description": description,
        "certificate": _temp_cert,
        "privateKey": _temp_key,
    }
    request = service.regionSslCertificates().insert(
        project=project_id, region=region, body=ssl_certificate_body
    )
    response = request.execute()
    pprint(response)

    return response

Untuk contoh kode tambahan, lihat halaman referensi API.

Langkah 3: Mengaitkan sertifikat SSL dengan proxy target

Anda harus mengaitkan minimal satu sertifikat SSL dengan setiap proxy HTTPS atau SSL target. Anda dapat mengonfigurasi proxy target dengan maksimal jumlah maksimum sertifikat SSL per proxy HTTPS target atau proxy SSL target. Anda dapat mereferensikan beberapa sertifikat yang dikelola sendiri di proxy target yang sama.

Konsol

Saat menggunakan Konsol Google Cloud untuk mengedit load balancer yang ada, Anda akan otomatis mengaitkan sertifikat SSL dengan proxy target yang sesuai.

gcloud

Untuk mengaitkan sertifikat SSL global dengan proxy HTTPS target, gunakan perintah gcloud compute target-https-proxies update dengan flag --global dan --global-ssl-certificates:

gcloud compute target-https-proxies update TARGET_PROXY_NAME \
    --global \
    --ssl-certificates=SSL_CERTIFICATE_LIST \
    --global-ssl-certificates

Untuk mengaitkan sertifikat SSL global dengan proxy SSL target, gunakan perintah gcloud compute target-ssl-proxies update:

gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \
    --ssl-certificates=SSL_CERTIFICATE_LIST

Untuk mengaitkan sertifikat SSL regional dengan proxy HTTPS target, gunakan perintah gcloud compute target-https-proxies update dengan flag --region dan --ssl-certificates-region:

gcloud compute target-https-proxies update TARGET_PROXY_NAME \
    --region=REGION \
    --ssl-certificates=SSL_CERTIFICATE_LIST \
    --ssl-certificates-region=REGION

Ganti kode berikut:

  • TARGET_PROXY_NAME: nama proxy target load balancer
  • REGION (jika ada): region untuk proxy target regional dan sertifikat SSL regional; region harus cocok
  • SSL_CERTIFICATE_LIST: daftar nama sertifikat SSL Google Cloud yang dipisahkan koma

    Pastikan daftar sertifikat yang dirujuk menyertakan semua sertifikat SSL lama yang valid serta sertifikat SSL baru. Perintah gcloud compute target-ssl-proxies update mengganti nilai asli untuk --ssl-certificates dengan nilai baru.

API

Untuk mengaitkan sertifikat SSL global dengan proxy HTTPS target, buat permintaan POST ke metode targetHttpsProxies.insert, dengan mengganti PROJECT_ID dengan ID project Anda.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxy

{
"name": "l7-xlb-proxy",
"urlMap": "projects/PROJECT_ID/global/urlMaps/l7-xlb-map",
"sslCertificates": /projectsPROJECT_IDglobal/sslCertificates/SSL_CERT_NAME
}

Untuk mengaitkan sertifikat SSL global dengan proxy HTTPS target, buat permintaan POST ke metode targetSslProxies.insert, dengan mengganti PROJECT_ID dengan ID project Anda.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetSslProxy

{
"name": "l7-ssl-proxy",
"sslCertificates": /projectsPROJECT_IDglobal/sslCertificates/SSL_CERT_NAME
}

Untuk mengaitkan sertifikat SSL regional dengan proxy HTTPS target, buat permintaan POST ke metode targetHttpsProxies.insert, dengan mengganti PROJECT_ID dengan ID project Anda.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxy

{
"name": "l7-xlb-proxy",
"urlMap": "projects/PROJECT_ID/global/urlMaps/l7-ilb-map",
"region": "us-west1"
"sslCertificates": /projectsPROJECT_IDregions/us-west1/sslCertificates/SSL_CERT_NAME
}

Langkah 4: Perbarui data A dan AAAA DNS agar mengarah ke alamat IP load balancer

Di situs registrar, host DNS, atau ISP Anda (di mana pun data DNS Anda dikelola), tambahkan atau perbarui data A DNS (untuk IPv4) dan data AAAA DNS (untuk IPv6) untuk domain dan subdomain Anda sehingga mengarah ke alamat IP yang terkait dengan aturan penerusan load balancer.

Jika Anda menggunakan Cloud DNS dan Cloud Domains, siapkan domain dan update server nama.

Jika menggunakan beberapa domain untuk satu sertifikat, Anda harus menambahkan atau memperbarui data DNS untuk semua domain dan subdomain sehingga semuanya mengarah ke alamat IP load balancer.

Setelah menunggu penyebaran DNS selesai, Anda dapat memverifikasi penyiapan dengan menjalankan perintah dig. Misalnya, anggap domain Anda adalah www.example.com. Jalankan perintah dig berikut:

dig www.example.com
; <<>> DiG 9.10.6 <<>> www.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31748
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.example.com.           IN  A

;; ANSWER SECTION:
www.example.com.        1742    IN  CNAME   www.example.com.edgekey.net.
www.example.com.edgekey.net. 21330 IN   CNAME   www.example.com.edgekey.net.globalredir.akadns.net.
www.example.com.edgekey.net.globalredir.akadns.net. 3356 IN CNAME   e6858.dsce9.akamaiedge.net.
e6858.dsce9.akamaiedge.net. 19  IN  A   203.0.113.5

;; Query time: 43 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Jun 03 16:54:44 PDT 2020
;; MSG SIZE  rcvd: 193

Dalam contoh ini, 203.0.113.5 adalah alamat IP load balancer Anda.

Langkah 5: Uji dengan OpenSSL

Diperlukan waktu hingga 30 menit agar load balancer mulai menggunakan sertifikat SSL yang dikelola sendiri.

Untuk menguji, jalankan perintah OpenSSL berikut, dengan mengganti DOMAIN dengan nama DNS Anda dan IP_ADDRESS dengan alamat IP load balancer Anda.

echo | openssl s_client -showcerts -servername DOMAIN -connect IP_ADDRESS:443 -verify 99 -verify_return_error

Perintah ini menampilkan sertifikat yang ditampilkan load balancer ke klien. Bersama dengan informasi mendetail lainnya, output harus menyertakan rantai sertifikat dan Verify return code: 0 (ok).

Menggunakan sertifikat SSL yang dikelola sendiri

Bagian berikut menjelaskan cara mencantumkan, melihat, menghapus, dan mengganti resource sertifikat SSL.

Membuat daftar sertifikat SSL

Konsol

Anda dapat memeriksa status sertifikat SSL global di tab Sertifikat Klasik di halaman Pengelola Sertifikat. Sertifikat SSL regional tidak dapat dikelola di konsol Google Cloud. Gunakan gcloud atau REST API.

  1. Buka tab Sertifikat Klasik di konsol Google Cloud.
    Buka Sertifikat Klasik
  2. (Opsional) Filter daftar sertifikat SSL.

gcloud

Untuk mencantumkan sertifikat SSL global, gunakan perintah gcloud compute ssl-certificates list dengan tanda --global:

gcloud compute ssl-certificates list \
   --global

Untuk mencantumkan sertifikat SSL regional, gunakan perintah gcloud compute ssl-certificates list dengan filter region:

gcloud compute ssl-certificates list \
   --filter="region:(REGION ...)"

Ganti kode berikut:

  • REGION: region Google Cloud; sertakan beberapa region sebagai daftar yang dipisahkan spasi

Menjelaskan sertifikat SSL

Konsol

Anda dapat melihat detail tambahan tentang sertifikat SSL global di tab Sertifikat Klasik di halaman Pengelola Sertifikat.

  1. Buka halaman Sertifikat Klasik di konsol Google Cloud.
    Buka Sertifikat Klasik
  2. (Opsional) Filter daftar sertifikat SSL.
  3. Untuk melihat detail selengkapnya, klik nama sertifikat.

gcloud

Untuk mendeskripsikan sertifikat SSL global, gunakan perintah gcloud compute ssl-certificates describe dengan flag --global:

gcloud  compute ssl-certificates describe CERTIFICATE_NAME \
   --global

Untuk mendeskripsikan sertifikat SSL regional, gunakan perintah gcloud compute ssl-certificates describe dengan flag --region:

gcloud compute ssl-certificates describe CERTIFICATE_NAME \
   --region=REGION

Ganti kode berikut:

  • CERTIFICATE_NAME: nama sertifikat SSL
  • REGION: region Google Cloud

Hapus beberapa sertifikat SSL

Sebelum dapat menghapus sertifikat SSL, Anda harus mengupdate setiap proxy target terlebih dahulu yang mereferensikan sertifikat. Untuk setiap proxy target, jalankan perintah gcloud update yang sesuai untuk memperbarui SSL_CERTIFICATE_LIST proxy target sehingga tidak lagi menyertakan sertifikat SSL yang perlu Anda hapus. Setiap proxy SSL target atau proxy HTTPS target harus mereferensikan minimal satu sertifikat SSL.

Setelah memperbarui proxy target, Anda dapat menghapus sertifikat SSL.

Konsol

Anda dapat menghapus sertifikat SSL global di tab Sertifikat Klasik di halaman Pengelola Sertifikat.

  1. Buka tab Sertifikat Klasik di konsol Google Cloud.
    Buka Sertifikat Klasik
  2. Pilih sertifikat SSL yang ingin Anda hapus.
  3. Klik Delete.
  4. Untuk mengonfirmasi, klik Hapus lagi.

gcloud

Untuk menghapus sertifikat SSL global, gunakan perintah gcloud compute ssl-certificates delete dengan perintah --global:

gcloud compute ssl-certificates delete CERTIFICATE_NAME \
    --global

Untuk menghapus sertifikat SSL regional, gunakan perintah gcloud compute ssl-certificates delete dengan perintah --region:

gcloud compute ssl-certificates delete CERTIFICATE_NAME \
    --region=REGION

Ganti kode berikut:

  • CERTIFICATE_NAME: nama sertifikat SSL
  • REGION: region Google Cloud

Mengganti atau memperpanjang sertifikat SSL sebelum masa berlakunya habis

Ikuti langkah-langkah berikut jika Anda perlu mengganti, memperpanjang, atau merotasi sertifikat SSL:

  1. Jalankan perintah gcloud compute ssl-certificates describe untuk sertifikat saat ini, untuk memeriksa apakah masa berlakunya akan segera berakhir.

  2. Buat resource sertifikat SSL baru. Sertifikat SSL baru harus memiliki nama unik dalam project.

  3. Perbarui proxy target untuk melepaskan sertifikat SSL lama dan menambahkan sertifikat baru. Pastikan untuk menyertakan sertifikat SSL lain yang sudah ada dan ingin Anda simpan.

    Untuk membantu menghindari periode nonaktif, jalankan satu perintah gcloud dengan flag --ssl-certificates. Contoh:

    Untuk Load Balancer Aplikasi eksternal global:

    Gunakan perintah gcloud compute target-https-proxies update dengan flag --global.

    gcloud compute target-https-proxies update TARGET_PROXY_NAME \
       --global \
       --ssl-certificates=new-ssl-cert,other-certificates \
       --global-ssl-certificates
    

    Untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional:

    Gunakan perintah gcloud compute target-https-proxies update dengan flag --region.

    gcloud compute target-https-proxies update TARGET_PROXY_NAME \
       --region=REGION \
       --ssl-certificates=new-ssl-cert,other-certificates \
       --ssl-certificates-region=REGION
    

    Untuk Load Balancer Jaringan proxy eksternal:

    Gunakan perintah gcloud compute target-ssl-proxies update dengan flag --backend-service.

    gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \
       --ssl-certificates=new-ssl-cert,other-certificates
    
  4. Pastikan load balancer menayangkan sertifikat pengganti dengan menjalankan perintah OpenSSL berikut:

    echo | openssl s_client -showcerts -connect IP_ADDRESS:443 -verify 99 -verify_return_error
    
  5. Tunggu 15 menit untuk memastikan bahwa operasi penggantian telah diterapkan ke semua Google Front End (GFE).

  6. (Opsional) Hapus sertifikat SSL lama.

Memutar sertifikat SSL secara berkala

Contoh solusi ini secara berkala memeriksa status sertifikat yang digunakan dengan load balancer Google Cloud dan merotasi sertifikat saat mencapai persentase tertentu dari masa aktifnya. Alat ini menggunakan CA yang dikonfigurasi menggunakan Certificate Authority Service.

Solusi ini berfungsi dengan load balancer berikut:

  • Load Balancer Aplikasi eksternal global
  • Load Balancer Aplikasi Klasik
  • Load Balancer Aplikasi eksternal regional
  • Load Balancer Aplikasi Internal
  • Load Balancer Jaringan proxy eksternal dengan proxy SSL

Langkah selanjutnya