Menggunakan sertifikat SSL yang dikelola sendiri

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

Sertifikat yang dikelola sendiri dapat berupa kombinasi apa pun 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

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

Untuk membuat sertifikat yang dikelola Google menggunakan Certificate Manager, lihat Ringkasan deployment.

Sebelum memulai

Izin

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

  • Anda adalah Pemilik atau Editor project (roles/owner atau roles/editor).
  • Anda memiliki peran Admin Keamanan Compute (compute.securityAdmin) dan peran Admin Jaringan Compute (compute.networkAdmin) dalam project.
  • Anda memiliki peran khusus untuk project yang menyertakan izin compute.sslCertificates.* dan salah satu atau kedua 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.

Pilih atau buat kunci pribadi

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

  • Harus dalam format PEM.
  • Kunci ini tidak dapat dilindungi oleh frasa sandi. Google Cloud menyimpan kunci pribadi Anda dalam format terenkripsinya sendiri.
  • Algoritma enkripsinya harus berupa 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:

  • Harus dalam format PEM.
  • Nama ini harus memiliki nama umum (CN) atau atribut nama alternatif subjek (SAN). Secara praktis, sertifikat Anda harus berisi baik CN maupun SAN, meskipun untuk satu domain. Klien modern, seperti versi terbaru macOS dan iOS tidak hanya mengandalkan atribut CN.

Untuk membuat CSR, ikuti langkah-langkah berikut:

  1. Buat file konfigurasi OpenSSL. Pada 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 diminta untuk memasukkan atribut kecuali untuk nama alternatif subjek, yang telah Anda tentukan dalam [sans_list] dari CONFIG_FILE di langkah sebelumnya.

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

Untuk kedua langkah tersebut, ganti kode 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 nama tersebut 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

Tanda tangani CSR

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

Menggunakan CA yang dipercaya secara publik

Jika Anda meminta CA yang dipercaya secara publik untuk menandatangani CSR Anda, sertifikat yang dihasilkan akan dipercaya oleh semua klien yang memercayai CA publik tersebut. Untuk membuat sertifikat bertanda tangan, 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 dipercaya secara internal jika klien 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, berarti 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 agar 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 Anda sendiri, atau 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 itu, sertifikat akan dianggap valid oleh klien yang memverifikasinya

Karakter pengganti dalam nama umum

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

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

Langkah 2: Buat resource sertifikat SSL yang dikelola sendiri

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

Konsol

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

  1. Buka tab klasik Sertifikat 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. Tempel 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. Tempel 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 global 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 tersebut. 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 ada, region untuk sertifikat SSL regional

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

API

Untuk menggunakan metode API, Anda harus terlebih dahulu membaca file sertifikat dan kunci pribadi karena permintaan API harus mengirimkan 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: Kaitkan sertifikat SSL dengan proxy target

Anda harus mengaitkan setidaknya satu sertifikat SSL dengan setiap HTTPS atau proxy SSL target. Anda dapat mengonfigurasi proxy target dengan hingga jumlah maksimum sertifikat SSL per HTTPS target atau proxy SSL target. Anda dapat mereferensikan beberapa sertifikat yang dikelola sendiri pada 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 tanda --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 tanda --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 sesuai
  • SSL_CERTIFICATE_LIST: daftar nama sertifikat SSL Google Cloud yang dibatasi koma

    Pastikan daftar sertifikat yang dirujuk mencakup semua sertifikat SSL lama yang valid dan 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, yang menggantikan PROJECT_ID dengan project ID 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, yang menggantikan PROJECT_ID dengan project ID 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, yang menggantikan PROJECT_ID dengan project ID 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 DNS A dan AAAA agar mengarah ke alamat IP load balancer

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

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

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

Setelah menunggu propagasi DNS selesai, Anda dapat memverifikasi penyiapan dengan menjalankan perintah dig. Misalnya, anggaplah 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:
;; flags: ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL:

;; PSEUDOSECTION:
; EDNS: version: 0, flags:; udp:
;; SECTION:
;www.example.com.

;; SECTION:
www.example.com.   www.example.com.edgekey.net.
www.example.com.edgekey.net.   www.example.com.edgekey.net.globalredir.akadns.net.
www.example.com.edgekey.net.globalredir.akadns.net.   e6858.dsce9.akamaiedge.net.
e6858.dsce9.akamaiedge.net.   203.0.113.5

;; time:
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 16:54:44
;;  rcvd: 31748 qr rd 1 OPT 512 QUESTION IN A ANSWER 1742 IN CNAME 21330 IN CNAME 3356 IN CNAME 19 IN A Query 43 msec Wed Jun 03 PDT 2020 MSG SIZE 193>

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

Langkah 5: Uji dengan OpenSSL

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

Untuk melakukan pengujian, jalankan perintah OpenSSL berikut. Ganti 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 menghasilkan sertifikat yang disajikan oleh load balancer ke klien. Bersama dengan informasi mendetail lainnya, output harus menyertakan rantai sertifikat dan Verify return code: 0 (ok).

Berfungsi dengan 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 pada halaman Pengelola Sertifikat. Sertifikat SSL regional tidak dapat dikelola di Konsol Google Cloud. Gunakan gcloud atau REST API.

  1. Buka tab Classic Certificates 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 flag --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; menyertakan beberapa region sebagai daftar yang dipisahkan spasi

Menjelaskan sertifikat SSL

Konsol

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

  1. Buka halaman Classic Certificates 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 terlebih dahulu mengupdate setiap proxy target yang merujuk sertifikat tersebut. Untuk setiap proxy target, jalankan perintah gcloud update yang sesuai untuk mengupdate SSL_CERTIFICATE_LIST proxy target sehingga tidak lagi menyertakan sertifikat SSL yang perlu Anda hapus. Setiap proxy SSL target atau proxy HTTPS target harus merujuk ke setidaknya satu sertifikat SSL.

Setelah mengupdate 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 Classic Certificates di Konsol Google Cloud.
    Buka Sertifikat Klasik
  2. Pilih sertifikat SSL yang ingin dihapus.
  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 berlaku sertifikat akan berakhir.

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

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

    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:

    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 \
       --global-ssl-certificates
    

    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 selama 15 menit untuk memastikan operasi penggantian telah diterapkan ke semua Front End Google (GFE).

  6. (Opsional) Hapus sertifikat SSL lama.

Rotasi sertifikat SSL secara berkala

Solusi contoh ini secara berkala memeriksa status sertifikat yang digunakan dengan load balancer Google Cloud dan merotasi sertifikat saat mencapai persentase masa aktif tertentu. 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