Mengonfigurasi sertifikat SSL (TLS)

Setelah Anda membuat layanan Media CDN (atau layanan), Anda dapat menerbitkan dan melampirkan sertifikat SSL (TLS) untuk mendukung konektivitas aman di browser dan aplikasi seluler.

Menerbitkan sertifikat terkelola

Untuk membuat sertifikat terkelola dan melampirkannya ke Media CDN Anda harus melakukan hal berikut:

  1. Tunjukkan kepemilikan ("otorisasi") domain yang ingin Anda mengeluarkan sertifikat dengan membuat token tantangan dan menambahkan DNS merekam.
  2. Buat sertifikat jenis EDGE_CACHE dengan satu atau beberapa nama domain berdasarkan otorisasi tersebut.
  3. Lampirkan sertifikat tersebut ke satu atau beberapa layanan Edge Cache.

Anda harus memiliki izin Identity and Access Management berikut untuk memberi otorisasi, membuat, dan melampirkan sertifikat ke layanan Edge Cache:

  • certificatemanager.certs.create
  • certificatemanager.certs.get
  • certificatemanager.certs.list
  • certificatemanager.certs.use
  • certificatemanager.dnsauthorizations.create
  • certificatemanager.dnsauthorizations.get
  • certificatemanager.dnsauthorizations.list
  • certificatemanager.dnsauthorizations.use

Pengguna yang perlu melampirkan sertifikat yang sudah ada ke Media CDN layanan memerlukan certificatemanager.certs.get, certificatemanager.certs.list, dan certificatemanager.certs.use Izin IAM.

Sebelum memulai

  • Anda harus memiliki nama domain terdaftar agar dapat memperbarui data DNS publik kueri.
  • Baca Ringkasan sertifikat SSL.

Membuat otorisasi DNS

Pertama, Anda harus membuat otorisasi DNS untuk menunjukkan kepemilikan domain sebelum Anda dapat menerbitkan sertifikat untuknya. Otorisasi DNS menggunakan parameter DNS-01 ACME tantangan, dan memungkinkan Anda menerbitkan sertifikat sebelum mengarahkan lalu lintas yang menghadap pengguna ke layanan Edge Cache.

Setel nilai domain ke nama domain yang ingin Anda buat sertifikatnya sebagai berikut:

gcloud

Gunakan perintah gcloud certificate-manager dns-authorizations:

gcloud certificate-manager dns-authorizations create DOMAIN_NAME_AUTH \
    --domain="DOMAIN_NAME"
gcloud certificate-manager dns-authorizations describe DOMAIN_NAME_AUTH

gcloud CLI menampilkan respons yang berisi detail data DNS yang perlu Anda tambahkan.

createTime: '2022-01-14T13:35:00.258409106Z'
dnsResourceRecord:
  data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog.
  name: _acme-challenge.example.com.
  type: CNAME
domain: example.com
name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization
updateTime: '2022-01-14T13:35:01.571086137Z'

Terraform

resource "google_certificate_manager_dns_authorization" "default" {
  name        = "example-dns-auth"
  description = "example dns authorization "
  domain      = "test.example.com"
}

Jika Anda menggunakan Cloud DNS untuk domain Anda, lihat langkah-langkah untuk menambahkan data baru ke domain yang dihosting. Jika Anda menggunakan penyedia DNS lain, hubungi penyedia dokumentasi untuk menambahkan data CNAME.

  • Anda dapat mengulangi langkah ini untuk setiap domain yang Anda perlukan untuk menerbitkan sertifikatnya.
  • Sertifikat dapat berisi beberapa domain, atau Anda dapat memilih untuk menerbitkan sertifikat per domain, sesuai kebutuhan. Setelah Anda memiliki otorisasi untuk Anda dapat menggunakannya untuk menerbitkan sertifikat.
  • Sebaiknya buat lebih sedikit total sertifikat, masing-masing dengan semua nama domain yang digunakan untuk layanan Anda. Hal ini meningkatkan kinerja klien saat menggunakan beberapa domain karena klien bisa lebih mendapatkan keuntungan dari melanjutkan TLS sesering mungkin.
  • Setiap layanan Edge Cache dapat mereferensikan hingga lima CA {i>root<i}. Dengan menerbitkan lebih sedikit sertifikat, Anda dapat tetap berada di dalam batas tersebut.

Jika Anda perlu mengambil nilai data DNS di kemudian hari, buat permintaan untuk authorizationName yang Anda berikan saat membuat DNS otorisasi:

Membuat sertifikat

Setelah Anda menambahkan data DNS yang menunjukkan kepemilikan domain yang Anda ingin buat sertifikatnya, Anda dapat menerbitkan permintaan pembuatan sertifikat.

Daftar dnsAuthorizations harus cocok dengan nama yang ada otorisasi yang Anda buat sebelumnya dalam proses. Jika Anda ingin menambahkan beberapa domain ke sertifikat yang sama, berikan daftar domains[] dan kecocokan dnsAuthorizations[] saat membuat permintaan.

Untuk membuat sertifikat menggunakan otorisasi untuk test.example.com yang disebut test-example-com:

gcloud

Gunakan perintah gcloud certificate-manager certificates:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAME" \
    --dns-authorizations="DOMAIN_NAME_AUTH" \
    --scope=EDGE_CACHE

Tindakan ini akan membuat sertifikat dengan setiap otorisasi DNS di AUTHORIZING status dan sertifikat dalam status PROVISIONING:

Create request issued for: [DOMAIN_NAME]
Waiting for operation [projects/my-project/locations/global/operations/operatio
n-1613425627385-5bb66ed644e91-3e2a2f1f-71979cf8] to complete...done.
Created certificate [CERTIFICATE_NAME].

Terraform

resource "google_certificate_manager_certificate" "default" {
  name        = "example-dns-cert"
  description = "example dns certificate"
  scope       = "EDGE_CACHE"
  managed {
    domains = [
      google_certificate_manager_dns_authorization.default.domain,
    ]
    dns_authorizations = [
      google_certificate_manager_dns_authorization.default.id,
    ]
  }
}

Mungkin diperlukan waktu beberapa menit (hingga satu jam) hingga pembuatan sertifikat diselesaikan, bergantung pada hal berikut:

  • Seberapa cepat penyedia DNS Anda menyebarkan perubahan konfigurasi.
  • Jumlah domain yang Anda coba validasi dan buat sertifikatnya.

Kolom state menampilkan status sertifikat saat ini:

  • PENYEDIAAN - sertifikat masih disediakan. Ini kemungkinan karena permintaan pembuatan sertifikat baru saja dibuat.
  • FAILED - ditampilkan setelah beberapa kali upaya untuk memvalidasi domain atau menerbitkan sertifikat. Untuk mengetahui detailnya, lihat provisioning_issue, Kolom authorization_attempt_info dan failure_reason.
  • AKTIF - domain berhasil divalidasi dan sertifikatnya telah disediakan.

Untuk memeriksa status sertifikat:

gcloud

Gunakan perintah gcloud certificate-manager certificates:

gcloud certificate-manager certificates describe CERTIFICATE_NAME

Dalam contoh ini, otorisasi DNS adalah AUTHORIZED dan sertifikat negara bagiannya adalah ACTIVE:

createTime: '2021-02-07T20:03:39.867762684Z'
expireTime: '2021-03-09T19:20:41Z'
managed:
  authorizationAttemptInfo:
  - domain: DOMAIN_NAME
    state: AUTHORIZED
  dnsAuthorizations:
  - projects/111111111111/locations/global/dnsAuthorizations/test-example-com
  domains:
  - DOMAIN_NAME
  state: ACTIVE
name: projects/my-project/locations/global/certificates/test-example-com
scope: EDGE_CACHE
subjectAlternativeNames:
- DOMAIN_NAME
updateTime: '2021-02-07T20:03:40.297242738Z'

Setelah sertifikat berstatus ACTIVE, Anda dapat melampirkannya ke Layanan Edge Cache.

Melampirkan sertifikat ke layanan

Setelah membuat sertifikat terkelola, Anda dapat Anda dapat mengaitkannya dengan satu atau beberapa layanan Edge Cache. Sertifikat dapat dilampirkan ke layanan baru dan yang sudah ada dengan memperbarui daftar edgeSslCertificates dalam layanan.

Anda harus memiliki izin IAM berikut untuk melampirkan ke layanan Edge Cache:

  • certificatemanager.certs.get
  • certificatemanager.certs.list
  • certificatemanager.certs.use
  • networkservices.edgeCacheServices.get
  • networkservices.edgeCacheServices.list
  • networkservices.edgeCacheServices.update

Untuk melampirkan sertifikat ke layanan, selesaikan langkah-langkah berikut.

gcloud

Jalankan perintah gcloud edge-cache services export untuk mengekspor atribut YAML:

gcloud edge-cache services export MY_SERVICE \
    --destination=my-service.yaml

Edit file YAML yang diekspor untuk menambahkan sertifikat Anda:

name: MY_SERVICE
edgeSslCertificates:
- projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME

Jalankan perintah gcloud edge-cache services import:

gcloud edge-cache services import MY_SERVICE \
    --source=my-service.yaml

Output:

Request issued for: [MY_SERVICE]
Updated service [MY_SERVICE]

Perintah tersebut menampilkan deskripsi layanan Anda, termasuk daftar edgeSslCertificates sekarang dilampirkan:

  name: MY_SERVICE
  edgeSslCertificates:
  - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME

Setelah Anda mengupdate konfigurasi, sertifikat akan disebarkan ke seluruh edge beberapa lokasi dalam hitungan menit. Untuk menguji apakah sertifikat tersebut terkait dengan Layanan Edge Cache sebelum membuat perubahan DNS, Anda dapat mengajukan permintaan alamat IPv4 atau IPv6 yang terkait dengan layanan Anda.

Mengganti dan menghapus sertifikat

Sertifikat dapat ditambahkan dan dihapus dengan memperbarui daftar sertifikat.

Saat menggunakan flag --edge-ssl-certificate gcloud CLI, sertifikat hanya ditambahkan ke daftar sertifikat yang ada, dan tidak diganti. Hal ini mencegah Anda secara tidak sengaja menghapus sertifikat secara tidak sengaja.

Untuk menghapus sertifikat test-example-com dari layanan kami di tempat berikut Anda dapat mengekspor layanan ke YAML menggunakan perintah impor dan ekspor

  name: my-service
  edgeSslCertificates:
  - projects/PROJECT_ID/locations/global/certificates/test-example-com
  - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME

Perintah berikut menunjukkan cara mengekspor layanan, menghapus sertifikat referensi layanan, dan impor layanan yang diupdate.

gcloud

Gunakan perintah gcloud edge-cache services:

gcloud edge-cache services export MY_SERVICE --destination=my-service.yaml
Exported [projects/my-project/locations/global/edgeCacheServices/MY_SERVICE] to 'my-service.yaml'.

Hapus sertifikat yang tidak lagi Anda inginkan untuk digunakan layanan dengan menggunakan editor teks pilihan:

  name: MY_SERVICE
  edgeSslCertificates:
  - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME

Simpan file yang diubah, lalu impor layanan yang diperbarui:

gcloud

Gunakan perintah gcloud edge-cache services:

gcloud edge-cache services import MY_SERVICE --source=my-service.yaml
Request issued for: [MY_SERVICE]
Updated service [MY_SERVICE].

Tidak ada batasan jumlah layanan yang dapat dikaitkan dengan sertifikat dan setiap layanan Edge Cache bisa mereferensikan hingga lima sertifikat.

Sertifikat yang dikelola sendiri

Anda dapat mengupload sertifikat Anda sendiri ke Media CDN jika memiliki kasus penggunaan tertentu yang membutuhkannya.

Untuk mengunggah sertifikat dan kunci yang terkait ke Pengelola Sertifikat:

gcloud

Gunakan perintah gcloud certificate-manager certificates. Pastikan Anda menentukan --scope=EDGE_CACHE untuk sertifikat yang terkait dengan dan Media CDN.

gcloud certificate-manager certificates create stream-example-com \
    --certificate-file=CERT.pem \
    --private-key-file=PRIVATE_KEY.pem \
    --scope=EDGE_CACHE
Create request issued for: [stream-example-com]
Created certificate [stream-example-com].

Setelah sertifikat diunggah, Anda dapat melampirkannya ke EdgeCacheService seperti yang dilakukan pada sertifikat yang dikelola.

Memecahkan masalah penerbitan sertifikat

Lihat panduan pemecahan masalah tentang cara mengatasi kesalahan otorisasi dan penerbitan sertifikat yang umum.

Langkah selanjutnya