Mengelola sertifikat klien
Gunakan prosedur berikut untuk mengelola sertifikat klien di Cloud SQL.
Mengambil sertifikat klien
Anda dapat mengambil bagian kunci publik dari sertifikat klien. Namun, Anda tidak dapat mengambil kunci pribadi. Jika kunci pribadi hilang, Anda harus membuat sertifikat baru.
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Koneksi dari menu navigasi SQL.
- Pilih tab Keamanan.
- Di Kelola sertifikat klien, klik nama sertifikat.
- Halaman SSL Client Certificate
akan terbuka dan menampilkan sertifikat klien (
client-cert.pem
) dengan link untuk mendownload sertifikat.
Ambil kunci publik sertifikat klien dengan perintah
ssl client-certs describe
:
gcloud sql ssl client-certs describeCERT_NAME \ --instance=INSTANCE_NAME \ --format="value(cert)" > client-cert.pem
Cantumkan sertifikat pada instance untuk mendapatkan sidik jari sertifikat yang ingin Anda ambil:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /sslCertsUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#sslCertsList", "items": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint " "instance": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ", "createTime": "2020-02-13T00:10:20.595Z", "expirationTime": "2030-02-10T00:11:20.595Z" } ] }Catat kolom
sha1Fingerprint
untuk sertifikat yang ingin Anda ambil. Jangan sertakan tanda kutip.Ambil sertifikat:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
- sha1FingerPrint: sha1FingerPrint sertifikat
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /sslCerts/sha1FingerPrint Untuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint " "instance": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ", "createTime": "2020-02-13T00:10:20.595Z", "expirationTime": "2030-02-10T00:11:20.595Z" }-
Salin semua data sertifikat yang terdapat di dalam tanda kutip
ke dalam file, misalnya
client-cert.pem
. Jangan menyalin tanda kutip itu sendiri.
Cantumkan sertifikat pada instance untuk mendapatkan sidik jari sertifikat yang ingin Anda ambil:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /sslCertsUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#sslCertsList", "items": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint " "instance": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ", "createTime": "2020-02-13T00:10:20.595Z", "expirationTime": "2030-02-10T00:11:20.595Z" } ] }Catat kolom
sha1Fingerprint
untuk sertifikat yang ingin Anda ambil. Jangan sertakan tanda kutip.Ambil sertifikat:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
- sha1FingerPrint: sha1FingerPrint sertifikat
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /sslCerts/sha1FingerPrint Untuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint " "instance": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ", "createTime": "2020-02-13T00:10:20.595Z", "expirationTime": "2030-02-10T00:11:20.595Z" }-
Salin semua data sertifikat yang terdapat di dalam tanda kutip
ke dalam file, misalnya
client-cert.pem
. Jangan menyalin tanda kutip itu sendiri.
Menghapus sertifikat klien
Saat Anda menghapus sertifikat klien, server database akan diperbarui dan tidak perlu dimulai ulang.
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Koneksi dari menu navigasi SQL.
- Pilih tab Keamanan.
- Di Mengelola sertifikat klien, temukan sertifikat yang ingin
dihapus, lalu klik
.
- Di panel Hapus sertifikat klien, klik Oke.
Hapus sertifikat klien menggunakan perintah ssl client-certs delete:
gcloud sql ssl client-certs deleteCERT_NAME \ --instance=INSTANCE_NAME
Cantumkan sertifikat pada instance untuk mendapatkan sidik jari sertifikat yang ingin Anda hapus:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /sslCertsUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#sslCertsList", "items": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint " "instance": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ", "createTime": "2020-02-13T00:10:20.595Z", "expirationTime": "2030-02-10T00:11:20.595Z" } ] }Catat kolom
sha1Fingerprint
untuk sertifikat yang ingin Anda hapus. Jangan sertakan tanda kutip.Menghapus sertifikat:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
- sha1FingerPrint: sha1FingerPrint sertifikat
Metode HTTP dan URL:
DELETE https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /sslCerts/sha1FingerPrint Untuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Tanggapan
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
Cantumkan sertifikat pada instance untuk mendapatkan sidik jari sertifikat yang ingin Anda hapus:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /sslCertsUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#sslCertsList", "items": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint " "instance": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ", "createTime": "2020-02-13T00:10:20.595Z", "expirationTime": "2030-02-10T00:11:20.595Z" } ] }Catat kolom
sha1Fingerprint
untuk sertifikat yang ingin Anda hapus. Jangan sertakan tanda kutip.Menghapus sertifikat:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
- sha1FingerPrint: sha1FingerPrint sertifikat
Metode HTTP dan URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /sslCerts/sha1FingerPrint Untuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
Mengelola sertifikat CA server (CA per-instance)
Bagian ini menjelaskan cara mengelola sertifikat CA server yang dibuat secara internal oleh Cloud SQL. Ini adalah mode CA server default di Cloud SQL. Dalam hierarki certificate authority ini, Cloud SQL membuat CA server untuk setiap instance.
Merotasi sertifikat CA server
Jika Anda menerima pemberitahuan tentang masa berlaku sertifikat Anda yang akan berakhir, atau Anda ingin memulai rotasi, lakukan langkah-langkah berikut untuk menyelesaikan rotasi. Sebelum memulai rotasi, Anda harus memiliki CA server baru di instance. Jika CA server baru sudah dibuat, Anda dapat melewati langkah pertama dalam prosedur berikut.
- Buat CA server baru.
- Download informasi sertifikat CA server baru.
- Perbarui klien Anda untuk menggunakan informasi sertifikat CA server yang baru.
- Selesaikan rotasi, yang memindahkan sertifikat aktif ke slot "sebelumnya" dan memperbarui sertifikat yang baru ditambahkan menjadi sertifikat aktif.
Download sertifikat CA server baru, yang dienkode sebagai file PEM, ke lingkungan lokal Anda:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Koneksi dari menu navigasi SQL.
- Pilih tab Keamanan.
- Klik untuk meluaskan Kelola sertifikat.
- Pilih Rotasi sertifikat CA.
Jika tidak ada sertifikat yang memenuhi syarat, opsi rotasi tidak akan tersedia. Anda harus membuat sertifikat CA server baru.
- Klik Download Sertifikat.
Perbarui semua klien PostgreSQL Anda untuk menggunakan informasi baru dengan menyalin file yang didownload ke mesin host klien, menggantikan file server-ca.pem
yang sudah ada.
Setelah Anda memperbarui klien, selesaikan rotasi:
- Kembali ke tab Keamanan.
- Klik untuk meluaskan Kelola sertifikat.
- Pilih Rotasi sertifikat CA.
- Pastikan klien Anda terhubung dengan benar.
Jika ada klien yang tidak terhubung menggunakan sertifikat yang baru dirotasi, Anda dapat memilih Rollback sertifikat CA untuk rollback ke konfigurasi sebelumnya.
- Buat sertifikat CA server:
gcloud sql ssl server-ca-certs create \ --instance=
INSTANCE - Download informasi sertifikat ke file PEM lokal:
gcloud sql ssl server-ca-certs list \ --format="value(cert)" \ --instance=
INSTANCE_NAME > \FILE_PATH /FILE_NAME .pem - Perbarui semua klien Anda untuk menggunakan informasi baru ini dengan menyalin file yang didownload ke mesin host klien, menggantikan file server-ca.pem yang sudah ada.
- Setelah Anda memperbarui klien, selesaikan rotasi:
gcloud sql ssl server-ca-certs rotate \ --instance=
INSTANCE_NAME - Pastikan klien Anda terhubung dengan benar.
Jika ada klien yang tidak terhubung menggunakan sertifikat yang baru dirotasi, Anda dapat melakukan rollback ke konfigurasi sebelumnya.
- Download sertifikat CA server Anda:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /listServerCasUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "certs": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2020-02-10T17:18:54.935Z", "expirationTime": "2030-02-07T17:19:54.935Z" }, { "kind": "sql#sslCert", certSerialNumber": "cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2019-11-14T22:43:56.458Z", "expirationTime": "2029-11-11T22:44:56.458Z" } ], "activeVersion": "active-version ", "kind": "sql#instancesListServerCas" } - Selesaikan rotasi:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /rotateServerCaUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Tanggapan
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
- Download sertifikat CA server Anda:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /listServerCasUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "certs": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2020-02-10T17:18:54.935Z", "expirationTime": "2030-02-07T17:19:54.935Z" }, { "kind": "sql#sslCert", certSerialNumber": "cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2019-11-14T22:43:56.458Z", "expirationTime": "2029-11-11T22:44:56.458Z" } ], "activeVersion": "active-version ", "kind": "sql#instancesListServerCas" } - Selesaikan rotasi:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /rotateServerCaUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
Jika Anda menerima error saat mencoba mengganti sertifikat yang menyatakan
No upcoming/previous Server CA Certificate exists
, verifikasi bahwa
Anda menjalankan perintah pada instance yang menggunakan hierarki CA per instance.
Anda dapat melihat hierarki CA yang dikonfigurasi untuk
instance Cloud SQL menggunakan perintah gcloud sql instances describe
.
Untuk mengetahui informasi selengkapnya, lihat Melihat informasi instance.
Pembatalan operasi rotasi sertifikat
Setelah Anda menyelesaikan rotasi sertifikat, semua klien Anda harus menggunakan sertifikat baru untuk terhubung ke instance Cloud SQL. Jika klien tidak diperbarui dengan benar untuk menggunakan informasi sertifikat baru, klien tidak dapat terhubung menggunakan SSL/TLS ke instance Anda. Jika hal ini terjadi, Anda dapat melakukan roll back ke konfigurasi sertifikat sebelumnya.
Operasi rollback akan memindahkan sertifikat aktif ke slot "mendatang" (menggantikan sertifikat "mendatang"). Sertifikat "sebelumnya" akan menjadi sertifikat aktif, mengembalikan konfigurasi sertifikat ke keadaan sebelum Anda menyelesaikan rotasi.
Untuk melakukan roll back ke konfigurasi sertifikat sebelumnya:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Koneksi dari menu navigasi SQL.
- Pilih tab Keamanan.
- Klik untuk meluaskan Kelola sertifikat.
- Pilih Rollback sertifikat CA.
Jika tidak ada sertifikat yang memenuhi syarat, maka opsi rollback tidak tersedia. Jika tidak, tindakan rollback akan selesai setelah beberapa detik.
gcloud sql ssl server-ca-certs rollback \ --instance=INSTANCE_NAME
- Download sertifikat CA server Anda:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /listServerCasUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "certs": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2020-02-10T17:18:54.935Z", "expirationTime": "2030-02-07T17:19:54.935Z" }, { "kind": "sql#sslCert", certSerialNumber": "cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2019-11-14T22:43:56.458Z", "expirationTime": "2029-11-11T22:44:56.458Z" } ], "activeVersion": "active-version ", "kind": "sql#instancesListServerCas" } - Salin kolom
sha1Fingerprint
untuk versi yang ingin Anda roll back.Cari versi dengan nilai createTime yang lebih awal sebelum versi dengan nilai sha1Fingerprint yang ditunjukkan sebagai
activeVersion
. - Roll back rotasi:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /rotateServerCaMeminta isi JSON:
{ "rotateServerCaContext": {"nextVersion": "
sha1Fingerprint "} }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"PowerShell (Windows)
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Tanggapan
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
- Download sertifikat CA server Anda:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /listServerCasUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "certs": [ { "kind": "sql#sslCert", "certSerialNumber": "
cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2020-02-10T17:18:54.935Z", "expirationTime": "2030-02-07T17:19:54.935Z" }, { "kind": "sql#sslCert", certSerialNumber": "cert-serial-number ", "cert": "cert-value ", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2019-11-14T22:43:56.458Z", "expirationTime": "2029-11-11T22:44:56.458Z" } ], "activeVersion": "active-version ", "kind": "sql#instancesListServerCas" } - Salin kolom
sha1Fingerprint
untuk versi yang ingin Anda roll back.Cari versi dengan nilai createTime yang lebih awal sebelum versi dengan nilai sha1Fingerprint yang ditunjukkan sebagai
activeVersion
. - Roll back rotasi:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /rotateServerCaMeminta isi JSON:
{ "rotateServerCaContext": {"nextVersion": "
sha1Fingerprint "} }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"PowerShell (Windows)
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
Jika Anda menerima error saat mencoba mengembalikan rotasi CA sertifikat yang menyatakan
No upcoming/previous Server CA Certificate exists
, maka verifikasi bahwa
Anda menjalankan perintah pada instance yang menggunakan hierarki CA per instance.
Anda dapat melihat hierarki CA yang dikonfigurasi untuk
instance Cloud SQL menggunakan perintah gcloud sql instances describe
.
Untuk mengetahui informasi selengkapnya, lihat Melihat informasi instance.
Memulai rotasi
Anda tidak perlu menunggu email dari Cloud SQL untuk memulai rotasi. Anda dapat memulainya kapan saja. Saat Anda memulai rotasi, sertifikat baru akan dibuat dan ditempatkan ke slot "mendatang". Jika sertifikat sudah ada di slot "mendatang" pada saat permintaan Anda, sertifikat tersebut akan dihapus. Hanya boleh ada satu sertifikat mendatang.
Untuk memulai rotasi:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Koneksi dari menu navigasi SQL.
- Pilih tab Keamanan.
- Klik untuk meluaskan Kelola sertifikat.
- Klik Buat sertifikat CA baru.
- Pilih Rotasi sertifikat CA.
Jika tidak ada sertifikat yang memenuhi syarat, opsi rotasi tidak akan tersedia.
- Selesaikan rotasi seperti yang dijelaskan dalam Merotasi sertifikat CA server.
- Memulai rotasi:
gcloud sql ssl server-ca-certs create \ --instance=
INSTANCE_NAME - Selesaikan rotasi seperti yang dijelaskan dalam Merotasi sertifikat CA server.
-
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id /rotateServerCaUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ", "targetProject": "project-id " } - Selesaikan rotasi seperti yang dijelaskan dalam Merotasi sertifikat CA server.
-
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /rotateServerCaUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " } - Selesaikan rotasi seperti yang dijelaskan dalam Merotasi sertifikat CA server.
Mendapatkan informasi tentang sertifikat CA server
Anda dapat memperoleh informasi tentang sertifikat CA server, seperti kapan masa berlaku sertifikat berakhir atau tingkat enkripsi yang disediakannya.
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Koneksi dari menu navigasi SQL.
- Pilih tab Keamanan.
Di Kelola sertifikat CA server, Anda dapat melihat tanggal habis masa berlaku sertifikat CA server di tabel.
Untuk melihat jenis sertifikat, gunakan perintah
gcloud sql ssl server-ca-certs list
.--instance=INSTANCE_NAME
gcloud sql ssl server-ca-certs list \ --instance=INSTANCE_NAME
Saat mendeskripsikan instance, Anda dapat melihat detail tentang sertifikat CA server:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert
Untuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert"
PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Tanggapan
{ "serverCaCert": { "kind": "sql#sslCert", "certSerialNumber": "cert-serial-number ", "cert": "cert-value -", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2020-02-10T17:18:54.935Z", "expirationTime": "2030-02-07T17:19:54.935Z" } }
Saat mendeskripsikan instance, Anda dapat melihat detail tentang sertifikat CA server:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert
Untuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert"
PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert" | Select-Object -Expand Content
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "serverCaCert": { "kind": "sql#sslCert", "certSerialNumber": "cert-serial-number ", "cert": "cert-value -", "commonName": "ca-server-name ", "sha1Fingerprint": "sha1Fingerprint ", "instance": "instance-id ", "createTime": "2020-02-10T17:18:54.935Z", "expirationTime": "2030-02-07T17:19:54.935Z" } }
Melihat konten sertifikat CA
Anda dapat menggunakan openssl storeutl
untuk melihat konten sertifikat CA.
Saat menjalankan perintah sql ssl server-ca-certs list, Anda mungkin mendapatkan beberapa sertifikat CA dari operasi terkait rotasi sebelumnya.
- Jalankan perintah berikut:
gcloud sql ssl server-ca-certs list \ --instance=
INSTANCE_NAME \ --format='value(cert)' > temp_cert.pemGanti INSTANCE_NAME dengan nama instance.
- Gunakan
openssl
untuk memeriksa konten sertifikat CA.
openssl storeutl -noout -text temp_cert.pem
Melihat konten sertifikat server
Anda dapat menggunakanopenssl s_client
untuk melihat konten sertifikat server.
Untuk melihat konten sertifikat server, jalankan perintah berikut:
openssl s_client -starttls postgres -connectINSTANCE_IP_ADDRESS :5432
Ganti INSTANCE_IP_ADDRESS dengan alamat IP instance.
Notifikasi masa berlaku SSL server eksternal telah berakhir
- Jika sertifikat CA server server eksternal akan berakhir, maka rotasi sertifikat SSL, termasuk sertifikat CA server di instance lokal. Langkah ini bergantung pada cara instance lokal dikelola. Langkah-langkahnya dapat bervariasi jika, misalnya, Anda menggunakan sertifikat CA server RDS, sertifikat CA server Cloud SQL, atau sertifikat CA server generik database.
- Jika masa berlaku sertifikat klien akan berakhir, Anda harus membuat sertifikat dan kunci baru. Hal ini berlaku untuk sertifikat SSL yang dikelola Google dan sertifikat yang ditandatangani sendiri. Google Cloud
- Perbarui instance representasi sumber Cloud SQL dengan sertifikat SSL baru.
Mengelola sertifikat server (CA bersama)
Bagian ini menjelaskan cara mengelola sertifikat server pada instance yang menggunakan CA bersama atau CA yang dikelola pelanggan.
Anda dapat memilih untuk menggunakan CA bersama sebagai
mode CA server untuk instance Anda dengan menentukan GOOGLE_MANAGED_CAS_CA
untuk
setelan serverCaMode
(Cloud SQL Admin API) atau flag --server-ca-mode
(gcloud CLI) saat Anda
membuat instance.
Untuk menggunakan CA yang dikelola pelanggan sebagai mode CA server untuk instance Anda, Anda harus menentukan CUSTOMER_MANAGED_CAS_CA
untuk setelan serverCaMode
(Cloud SQL Admin API) atau flag --server-ca-mode
(gcloud CLI)
saat Anda membuat instance, dan Anda
harus memiliki CA dan kumpulan CA yang valid. Untuk mengetahui informasi selengkapnya, lihat
Menggunakan CA yang dikelola pelanggan.
Merotasi sertifikat server
Jika Anda menerima pemberitahuan tentang masa berlaku sertifikat server Anda yang akan berakhir, atau Anda ingin memulai rotasi, lakukan langkah-langkah berikut untuk menyelesaikan rotasi. Sebelum Anda memulai rotasi, sertifikat server baru harus dibuat untuk rotasi mendatang. Jika sudah ada sertifikat server baru yang dibuat untuk rotasi mendatang, Anda dapat melewati langkah pertama dalam prosedur berikut.
Untuk merotasi sertifikat server di instance Anda, lakukan langkah-langkah berikut:
Jika Anda memerlukan sertifikat server baru, buat sertifikat baru.
Jika klien Anda sudah memercayai CA root, langkah ini bersifat opsional. Namun, jika Anda perlu memperbarui informasi CA server untuk klien, lakukan hal berikut:
- Download informasi CA server terbaru.
- Perbarui klien Anda untuk menggunakan informasi CA server terbaru.
Selesaikan rotasi dengan memindahkan sertifikat aktif ke slot sebelumnya, dan memperbarui sertifikat baru menjadi sertifikat aktif.
Download informasi sertifikat CA server, yang dienkode sebagai file PEM, ke lingkungan lokal Anda:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Koneksi dari menu navigasi SQL.
- Pilih tab Keamanan.
- Klik untuk meluaskan Kelola sertifikat.
- Konfirmasi bahwa opsi Rotate server certificate muncul
sebagai opsi yang tersedia; namun, jangan pilih opsi tersebut dulu.
Jika tidak ada sertifikat yang memenuhi syarat, opsi rotasi tidak akan tersedia. Anda harus membuat sertifikat server baru.
- Klik Download sertifikat.
Perbarui semua klien PostgreSQL Anda untuk menggunakan informasi baru dengan menyalin file yang didownload ke mesin host klien, menggantikan
file server-ca.pem
yang sudah ada.
Setelah Anda memperbarui klien, selesaikan rotasi:
- Kembali ke tab Keamanan.
- Klik untuk meluaskan Kelola sertifikat.
- Pilih Rotasi sertifikat.
- Dalam dialog Konfirmasi rotasi sertifikat, klik Putar.
Pastikan klien Anda terhubung dengan benar.
Jika ada klien yang tidak terhubung menggunakan sertifikat yang baru dirotasi, Anda dapat memilih Rollback sertifikat untuk rollback ke konfigurasi sebelumnya.
- Untuk membuat sertifikat server, gunakan perintah berikut:
gcloud sql ssl server-certs create \ --instance=
INSTANCE
Ganti INSTANCE dengan nama instance.
- Pastikan Anda menggunakan CA bundle terbaru.
Jika Anda tidak menggunakan CA bundle terbaru, jalankan perintah berikut
untuk mendownload informasi CA server terbaru untuk instance ke file PEM lokal:
gcloud sql ssl server-certs list \ --format="value(ca_cert.cert)" \ --instance=
INSTANCE_NAME > \FILE_PATH /server-ca.pemAtau, download paket CA dari tabel paket sertifikat CA root dan regional di halaman ini.
Kemudian, perbarui semua klien Anda untuk menggunakan informasi CA server baru dengan menyalin file yang didownload ke mesin host klien, menggantikan file
server-ca.pem
yang sudah ada. - Setelah Anda memperbarui semua klien (jika pembaruan klien diperlukan),
selesaikan rotasi:
gcloud sql ssl server-certs rotate \ --instance=
INSTANCE_NAME Pastikan klien Anda terhubung dengan benar.
Jika ada klien yang tidak terhubung menggunakan sertifikat server yang baru dirotasi, maka lakukan roll back ke konfigurasi sebelumnya.
Buat sertifikat server.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID /addServerCertificateUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2024-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }Jika perlu mendownload informasi sertifikat CA server, Anda dapat menggunakan perintah berikut.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID /listServerCertificatesUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "caCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "
CERT_SERIAL_NUMBER_CA_CERT_ONE ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-10T17:18:54.935Z", "expirationTime": "2034-07-10T17:19:54.935Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-14T22:43:56.458Z", "expirationTime": "2034-11-11T22:44:56.458Z" } ], "serverCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-16T18:11:39Z", "expirationTime": "2025-09-16T18:11:38Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-10T20:56:06Z", "expirationTime": "2025-09-10T20:56:05Z" } ], "activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ", "kind": "sql#instancesListServerCertificates" }Selesaikan rotasi.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID project
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificateUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Tanggapan
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2024-09-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/operation-id ", "targetProject": "PROJECT_ID " }
Buat sertifikat server.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID /addServerCertificateUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2024-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }Jika perlu mendownload informasi sertifikat CA server, Anda dapat menggunakan perintah berikut.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID /listServerCertificatesUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "caCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "
CERT_SERIAL_NUMBER_CA_CERT_ONE ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-10T17:18:54.935Z", "expirationTime": "2034-07-10T17:19:54.935Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-14T22:43:56.458Z", "expirationTime": "2034-11-11T22:44:56.458Z" } ], "serverCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-16T18:11:39Z", "expirationTime": "2025-09-16T18:11:38Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-10T20:56:06Z", "expirationTime": "2025-09-10T20:56:05Z" } ], "activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ", "kind": "sql#instancesListServerCertificates" }Selesaikan rotasi.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificateUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2024-09-20T21:30:35.667Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }
Membatalkan rotasi sertifikat
Setelah Anda menyelesaikan rotasi sertifikat server, semua klien Anda harus menggunakan sertifikat baru untuk terhubung ke instance Cloud SQL. Jika klien tidak diperbarui dengan benar untuk menggunakan informasi sertifikat baru, klien tidak dapat terhubung menggunakan SSL/TLS ke instance Anda. Jika ini terjadi, Anda dapat melakukan roll back ke konfigurasi sertifikat sebelumnya.
Operasi rollback akan memindahkan sertifikat aktif ke slot "mendatang", yang menggantikan sertifikat "mendatang" apa pun. Sertifikat "sebelumnya" akan menjadi sertifikat aktif dan mengembalikan konfigurasi sertifikat ke keadaan sebelumnya sebelum Anda menyelesaikan rotasi.
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Koneksi dari menu navigasi SQL.
- Pilih tab Keamanan.
- Klik untuk meluaskan Kelola sertifikat.
- Pilih Rollback sertifikat server.
Jika tidak ada sertifikat yang memenuhi syarat, maka opsi rollback tidak tersedia.
- Pada dialog Konfirmasi rollback sertifikat, pilih Rollback.
Rollback mungkin memerlukan waktu beberapa detik untuk diselesaikan.
gcloud sql ssl server-certs rollback \ --instance=INSTANCE_NAME
Mencantumkan sertifikat server Anda.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID /listServerCertificatesUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "caCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "
CERT_SERIAL_NUMBER_CA_CERT_ONE ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-10T17:18:54.935Z", "expirationTime": "2034-07-10T17:19:54.935Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-14T22:43:56.458Z", "expirationTime": "2034-11-11T22:44:56.458Z" } ], "serverCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-16T18:11:39Z", "expirationTime": "2025-09-16T18:11:38Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-10T20:56:06Z", "expirationTime": "2025-09-10T20:56:05Z" } ], "activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ", "kind": "sql#instancesListServerCertificates" }Salin kolom
sha1Fingerprint
untuk versi yang ingin Anda roll back.Cari versi dengan nilai
createTime
yang lebih awal sebelum versi dengan nilaisha1Fingerprint
yang ditunjukkan sebagaiactiveVersion
.Roll back rotasi.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificateMeminta isi JSON:
{ "rotateServerCertificateContext": {"nextVersion": "
sha1Fingerprint "} }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"PowerShell (Windows)
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Tanggapan
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/
PROJECT_ID /instances/INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }
Mencantumkan sertifikat server Anda.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID /listServerCertificatesUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "caCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "
CERT_SERIAL_NUMBER_CA_CERT_ONE ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-10T17:18:54.935Z", "expirationTime": "2034-07-10T17:19:54.935Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ", "cert": "CERT_VALUE ", "commonName": "CA_SERVER_NAME ", "sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-07-14T22:43:56.458Z", "expirationTime": "2034-11-11T22:44:56.458Z" } ], "serverCerts": [ { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-16T18:11:39Z", "expirationTime": "2025-09-16T18:11:38Z" }, { "kind": "sql#sslCert", "certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ", "cert": "CERT_VALUE " "commonName": "SUBJECT_VALUE ", "sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ", "instance": "INSTANCE_NAME ", "createTime": "2024-09-10T20:56:06Z", "expirationTime": "2025-09-10T20:56:05Z" } ], "activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ", "kind": "sql#instancesListServerCertificates" }Salin kolom
sha1Fingerprint
untuk versi yang ingin Anda roll back.Cari versi dengan nilai
createTime
yang lebih awal sebelum versi dengan nilaisha1Fingerprint
yang ditunjukkan sebagaiactiveVersion
.Roll back rotasi.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificateMeminta isi JSON:
{ "rotateServerCertificateContext": {"nextVersion": "
sha1Fingerprint "} }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"PowerShell (Windows)
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
PROJECT_ID /instances/INSTANCE_ID ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "OPERATION_ID ", "targetId": "INSTANCE_ID ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ", "targetProject": "PROJECT_ID " }
Melihat konten sertifikat CA
Anda dapat menggunakan utilitas openssl storeutl
untuk melihat konten sertifikat CA.
Saat menjalankan perintah sql ssl server-certs list, Anda akan selalu mendapatkan beberapa sertifikat CA karena rantai kepercayaan. Anda juga mungkin mendapatkan beberapa sertifikat CA dari operasi terkait rotasi sebelumnya.
- Jalankan perintah berikut:
gcloud sql ssl server-certs list \ --instance=
INSTANCE_NAME \ --format='value(cert)' > temp_cert.pemGanti INSTANCE_NAME dengan nama instance.
- Gunakan
openssl
untuk memeriksa konten sertifikat CA.
openssl storeutl -noout -text temp_cert.pem
Melihat konten sertifikat server
Anda dapat menggunakan utilitas openssl
dan perintah sql ssl server-certs list
untuk melihat konten sertifikat server.
Saat menjalankan perintah gcloud CLI, Anda akan selalu mendapatkan beberapa sertifikat CA karena rantai kepercayaan. Anda juga dapat memperoleh beberapa sertifikat CA dari operasi terkait rotasi sebelumnya.
Hanya menggunakan openssl s_client
:
openssl s_client -starttls postgres -connectINSTANCE_IP_ADDRESS :5432
Ganti INSTANCE_IP_ADDRESS dengan alamat IP instance.
Menggunakan gcloud CLI
dan openssl storeutl
:
- Jalankan perintah berikut:
gcloud sql ssl server-certs list \ --instance=
INSTANCE_NAME \ --format='value(ssl_cert.cert)' > temp_cert.pemGanti INSTANCE_NAME dengan nama instance.
- Gunakan
openssl
untuk memeriksa konten sertifikat server.
openssl storeutl -noout -text temp_cert.pem
Mendownload paket sertifikat CA root dan regional untuk CA bersama
Jika menggunakan konfigurasi CA bersama yang dikelola Google, Anda dapat mendownload paket sertifikat CA root dan regional dari tabel berikut.
Paket sertifikat ini tidak berlaku untuk instance yang menggunakan opsi CA per instance atau yang dikelola pelanggan.
Nama region | Lokasi | Paket sertifikat | |
---|---|---|---|
Global | |||
CA untuk semua wilayah | Semua lokasi | global.pem |
|
Asia | |||
asia-east1 |
Taiwan | asia-east1.pem |
|
asia-east2 |
Hong Kong | asia-east2.pem |
|
asia-northeast1 |
Tokyo | asia-northeast1.pem |
|
asia-northeast2 |
Osaka | asia-northeast2.pem |
|
asia-northeast3 |
Seoul | asia-northeast3.pem |
|
asia-south1 |
Mumbai | asia-south1.pem |
|
asia-south2 |
Delhi | asia-south2.pem |
|
asia-southeast1 |
Singapura | asia-southeast1.pem |
|
asia-southeast2 |
Jakarta | asia-southeast2.pem |
|
Afrika | |||
africa-south1 |
Johannesburg | africa-south1.pem |
|
Australia | |||
australia-southeast1 |
Sydney | australia-southeast1.pem |
|
australia-southeast2 |
Melbourne | australia-southeast2.pem |
|
Eropa | |||
europe-central2 |
Warsawa | europe-central2.pem |
|
europe-north1 |
Finlandia | europe-north1.pem |
|
europe-north2 |
Stockholm | europe-north2.pem |
|
europe-southwest1 |
Madrid | europe-southwest1.pem |
|
europe-west1 |
Belgia | europe-west1.pem |
|
europe-west2 |
London | europe-west2.pem |
|
europe-west3 |
Frankfurt | europe-west3.pem |
|
europe-west4 |
Belanda | europe-west4.pem |
|
europe-west6 |
Zürich | europe-west6.pem |
|
europe-west8 |
Milan | europe-west8.pem |
|
europe-west9 |
Paris | europe-west9.pem |
|
europe-west10 |
Berlin | europe-west10.pem |
|
europe-west12 |
Turin | europe-west12.pem |
|
Timur Tengah | |||
me-central1 |
Doha | me-central1.pem |
|
me-central2 |
Dammam | me-central2.pem |
|
me-west1 |
Tel Aviv | me-west1.pem |
|
Amerika Utara | |||
northamerica-northeast1 |
Montréal | northamerica-northeast1.pem |
|
northamerica-northeast2 |
Toronto | northamerica-northeast2.pem |
|
northamerica-south1 |
Meksiko | northamerica-south1.pem |
|
us-central1 |
Iowa | us-central1.pem |
|
us-east1 |
Carolina Selatan | us-east1.pem |
|
us-east4 |
Northern Virginia | us-east4.pem |
|
us-east5 |
Columbus | us-east5.pem |
|
us-south1 |
Dallas | us-south1.pem |
|
us-west1 |
Oregon | us-west1.pem |
|
us-west2 |
Los Angeles | us-west2.pem |
|
us-west3 |
Salt Lake City | us-west3.pem |
|
us-west4 |
Las Vegas | us-west4.pem |
|
Amerika Selatan | |||
southamerica-east1 |
Sao Paulo | southamerica-east1.pem |
|
southamerica-west1 |
Santiago | southamerica-west1.pem |
Mereset konfigurasi SSL/TLS
Anda dapat sepenuhnya mereset konfigurasi SSL/TLS.
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Koneksi dari menu navigasi SQL.
- Buka bagian Reset konfigurasi SSL.
- Klik Reset Konfigurasi SSL.
Muat ulang sertifikat:
gcloud sql instances reset-ssl-config
INSTANCE_NAME - Buat sertifikat klien baru.
Muat ulang sertifikat:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project
- instance-id: ID instance
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id /resetSslConfigUntuk mengirim permintaan, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig"PowerShell (Windows)
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig" | Select-Object -Expand ContentAnda akan menerima respons JSON yang mirip dengan yang berikut ini:
Respons
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/
project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " }- Buat sertifikat klien baru.
Langkah berikutnya
- Pelajari lebih lanjut SSL/TLS di Cloud SQL.
- Konfigurasikan SSL/TLS pada instance Cloud SQL Anda.
- Hubungkan menggunakan SSL/TLS ke instance Cloud SQL Anda.
- Pelajari lebih lanjut cara PostgreSQL menggunakan SSL/TLS.
- Lihat semua layananGoogle Cloud yang tersedia di berbagai lokasi di seluruh dunia.