בדף הזה מוסבר איך לנהל את אישורי רשות האישורים (CA) של הלקוח והשרת.
ניהול אישורי לקוח
הנה פרוצדורות לניהול אישורי לקוח ב-Cloud SQL.
אחזור אישור לקוח
אפשר לאחזר את החלק של המפתח הציבורי מאישור לקוח. עם זאת, אי אפשר לאחזר את המפתח הפרטי. אם איבדתם את המפתח הפרטי, אתם צריכים ליצור אישור חדש.
המסוף
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
בוחרים בכרטיסייה אבטחה .
בקטע ניהול אישורי לקוח , לוחצים על שם האישור.
נפתח הדף SSL Client Certificate ומוצג בו אישור הלקוח (client-cert.pem) עם קישור להורדת האישור.
gcloud
שולפים את המפתח הציבורי של אישור הלקוח באמצעות הפקודה ssl client-certs describe :
gcloud sql ssl client-certs describe CERT_NAME \
--instance= INSTANCE_NAME \
--format= "value(cert)" > client-cert.pem
REST v1
מציגים את רשימת האישורים במופע כדי לקבל את טביעת האצבע של האישור שרוצים לאחזר:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
]
}
מציינים את השדה sha1Fingerprint של האישור שרוצים לאחזר. אל תכללו את המירכאות.
מאחזרים את האישור:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
sha1FingerPrint : sha1FingerPrint של האישור
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
מעתיקים את כל נתוני האישור שמופיעים בין המירכאות
לקובץ, למשל client-cert.pem. אל תעתיקו את המירכאות עצמן.
REST v1beta4
מציגים את רשימת האישורים במופע כדי לקבל את טביעת האצבע של האישור שרוצים לאחזר:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
]
}
מציינים את השדה sha1Fingerprint של האישור שרוצים לאחזר. אל תכללו את המירכאות.
מאחזרים את האישור:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
sha1FingerPrint : sha1FingerPrint של האישור
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
מעתיקים את כל נתוני האישור שמופיעים בין המירכאות
לקובץ, למשל client-cert.pem. אל תעתיקו את המירכאות עצמן.
מחיקה של אישור לקוח
כשמוחקים אישור לקוח, שרת מסד הנתונים מתעדכן ואין צורך להפעיל אותו מחדש.
המסוף
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
בוחרים בכרטיסייה אבטחה .
בקטע ניהול אישורי לקוח , מוצאים את האישור שרוצים למחוק ולוחצים על .
בחלונית Delete client certificate , לוחצים על Ok .
gcloud
מוחקים את אישור הלקוח באמצעות הפקודה
ssl client-certs delete :
gcloud sql ssl client-certs delete CERT_NAME \
--instance= INSTANCE_NAME
REST v1
מציגים את רשימת האישורים במופע כדי לקבל את טביעת האצבע של האישור שרוצים למחוק:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
]
}
רושמים את הערך של השדה sha1Fingerprint של האישור שרוצים למחוק. אל תכללו את המירכאות.
מחיקת האישור:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
sha1FingerPrint : sha1FingerPrint של האישור
ה-method של ה-HTTP וכתובת ה-URL:
DELETE https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
REST v1beta4
מציגים את רשימת האישורים במופע כדי לקבל את טביעת האצבע של האישור שרוצים למחוק:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
]
}
רושמים את הערך של השדה sha1Fingerprint של האישור שרוצים למחוק. אל תכללו את המירכאות.
מחיקת האישור:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
sha1FingerPrint : sha1FingerPrint של האישור
ה-method של ה-HTTP וכתובת ה-URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
ניהול אישורי CA של שרת (CA לכל מופע)
בקטע הזה מוסבר איך לנהל אישורי CA של שרתים שנוצרים באופן פנימי על ידי Cloud SQL. זהו מצב ברירת המחדל של CA בשרת ב-Cloud SQL. בהיררכיית רשויות האישורים הזו, Cloud SQL יוצרת רשות אישורים (CA) של שרת לכל מכונה.
החלפת אישורי CA של השרת
אם קיבלתם הודעה על כך שהאישורים שלכם עומדים לפוג, או אם אתם רוצים להתחיל בהחלפה, אתם צריכים לפעול לפי השלבים הבאים כדי להשלים את ההחלפה. לפני שמתחילים את הרוטציה, צריך שיהיה מופעל במופע שרת חדש של CA. אם כבר נוצר CA חדש לשרת, אפשר לדלג על השלב הראשון בתהליך הבא.
יוצרים CA חדש לשרת.
מורידים את פרטי אישור ה-CA החדש של השרת.
צריך לעדכן את הלקוחות כך שישתמשו במידע החדש על אישור CA של השרת.
משלימים את הרוטציה, שמעבירה את האישור הפעיל למשבצת 'הקודמת' ומעדכנת את האישור שנוסף לאחרונה כך שיהיה האישור הפעיל.
אחרי שמבצעים רוטציה של אישור ה-SSL, החיבורים של App Engine ושל שרת ה-proxy ל-Cloud SQL Auth מקבלים באופן אוטומטי אישור חדש כשהם מתחברים.
המסוף
מורידים את אישור ה-CA החדש של השרת, שמקודד כקובץ PEM, לסביבה המקומית:
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
בוחרים בכרטיסייה אבטחה .
לוחצים על ניהול אישורים כדי להרחיב אותו.
בוחרים באפשרות החלפת אישור CA .
אם אין אישורים שעומדים בדרישות, האפשרות rotate (סיבוב) לא זמינה. צריך ליצור אישור CA חדש של שרת .
לוחצים על הורדת אישורים .
כדי לעדכן את כל לקוחות MySQL כך שישתמשו במידע החדש, מעתיקים את הקובץ שהורד למחשבי המארחים של הלקוחות ומחליפים את הקובץ הקיים server-ca.pem.
אחרי שמעדכנים את הלקוחות, משלימים את הרוטציה:
חוזרים לכרטיסייה אבטחה .
לוחצים על ניהול אישורים כדי להרחיב אותו.
בוחרים באפשרות החלפת אישור CA .
מוודאים שהלקוחות מתחברים בצורה תקינה.
אם יש לקוחות שלא מתחברים באמצעות האישור החדש שהוחלף, אפשר לבחור באפשרות Rollback CA certificate (החזרת אישור CA) כדי לחזור להגדרה הקודמת.
gcloud
יוצרים אישור CA של שרת:
gcloud sql ssl server-ca-certs create \
--instance=INSTANCE
מורידים את פרטי האישור לקובץ PEM מקומי:
gcloud sql ssl server-ca-certs list \
--format="value(cert)" \
--instance=INSTANCE_NAME > \
FILE_PATH /FILE_NAME .pem
כדי לעדכן את כל הלקוחות כך שישתמשו במידע החדש, צריך להעתיק את הקובץ שהורדתם למכונות המארחות של הלקוחות ולהחליף את קובצי ה-server-ca.pem הקיימים.
אחרי שמעדכנים את הלקוחות, משלימים את הרוטציה:
gcloud sql ssl server-ca-certs rotate \
--instance=INSTANCE_NAME
מוודאים שהלקוחות מתחברים בצורה תקינה.
אם יש לקוחות שלא מתחברים באמצעות האישור החדש שהוחלף, אפשר לחזור להגדרה הקודמת.
REST v1
מורידים את אישורי ה-CA של השרת:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
משלימים את הסבב:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
REST v1beta4
מורידים את אישורי ה-CA של השרת:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
משלימים את הסבב:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
אם מופיעה שגיאה כשמנסים להחליף אישור עם ההודעה
No upcoming/previous Server CA Certificate exists, צריך לוודא שמריצים את הפקודה במופע שמשתמש בהיררכיית CA לכל מופע.
אפשר לראות איזו היררכיית CA מוגדרת למופע Cloud SQL באמצעות הפקודה gcloud sql instances describe.
מידע נוסף זמין במאמר בנושא צפייה בפרטי המופע .
ביטול פעולה של החלפת אישור
אחרי שמסיימים את הרוטציה של האישורים, כל הלקוחות חייבים להשתמש באישור החדש כדי להתחבר למכונת Cloud SQL. אם הלקוחות לא מעודכנים בצורה נכונה כדי להשתמש בפרטי האישור החדשים, הם לא יכולים להתחבר למופע באמצעות SSL/TLS. במקרה כזה, אפשר לחזור להגדרת האישור הקודמת.
פעולת חזרה לגרסה קודמת מעבירה את האישור הפעיל למשבצת 'בקרוב' (ומחליפה כל אישור אחר שמופיע במשבצת הזו). האישור 'הקודם' הופך לאישור הפעיל, והגדרת האישור חוזרת למצב שבו הייתה לפני השלמת הרוטציה.
הערה: אפשר לבטל את השינוי של האישור רק עד שתוקף האישור הישן יפוג.
כדי לחזור להגדרת האישור הקודמת:
המסוף
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
בוחרים בכרטיסייה אבטחה .
לוחצים על ניהול אישורים כדי להרחיב אותו.
בוחרים באפשרות החזרת אישור CA . אם אין אישורים שעומדים בדרישות,
אפשרות החזרה לגרסה הקודמת לא תהיה זמינה. אחרת, פעולת החזרה לגרסה הקודמת מסתיימת אחרי כמה שניות.
gcloud
gcloud sql ssl server-ca-certs rollback \
--instance=INSTANCE_NAME
REST v1
מורידים את אישורי ה-CA של השרת:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
מעתיקים את השדה sha1Fingerprint של הגרסה שאליה רוצים לחזור.
מחפשים את הגרסה עם הערך createTime שמופיע מיד לפני הגרסה עם הערך sha1Fingerprint שמוצג כ-activeVersion.
החזרה לממשק הקודם:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa
תוכן בקשת JSON:
{
"rotateServerCaContext": {"nextVersion": "sha1Fingerprint "}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
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)
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
REST v1beta4
מורידים את אישורי ה-CA של השרת:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
מעתיקים את השדה sha1Fingerprint של הגרסה שאליה רוצים לחזור.
מחפשים את הגרסה עם הערך createTime שמופיע מיד לפני הגרסה עם הערך sha1Fingerprint שמוצג כ-activeVersion.
החזרה לממשק הקודם:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
תוכן בקשת JSON:
{
"rotateServerCaContext": {"nextVersion": "sha1Fingerprint "}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
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)
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
אם מופיעה שגיאה כשמנסים לבטל את השינוי של רוטציה של CA של אישור, עם ההודעה No upcoming/previous Server CA Certificate exists, צריך לוודא שמריצים את הפקודה במופע שמשתמש בהיררכיית CA לכל מופע.
אפשר לראות איזו היררכיית CA מוגדרת למופע Cloud SQL באמצעות הפקודה gcloud sql instances describe.
מידע נוסף זמין במאמר בנושא צפייה בפרטי המופע .
התחלת סבב
לא צריך לחכות לאימייל מ-Cloud SQL כדי להתחיל בהחלפה.
אפשר להתחיל שיחה בכל שלב. כשמתחילים רוטציה, נוצר אישור חדש והוא מוצב במשבצת 'בקרוב'. אם יש כבר אישור במשבצת 'בקרוב' בזמן הבקשה, האישור הזה יימחק.
יכול להיות רק אישור אחד שצפוי להתקבל.
כדי להתחיל סיבוב:
המסוף
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
בוחרים בכרטיסייה אבטחה .
לוחצים על ניהול אישורים כדי להרחיב אותו.
לוחצים על יצירת אישור CA חדש .
בוחרים באפשרות החלפת אישור CA .
אם אין אישורים שעומדים בדרישות,
אפשרות הרוטציה לא תהיה זמינה.
משלימים את הסבב כמו שמתואר במאמר בנושא החלפת אישורי CA של השרת .
gcloud
מתחילים את הסבב:
gcloud sql ssl server-ca-certs create \
--instance=INSTANCE_NAME
משלימים את הסבב כמו שמתואר במאמר בנושא החלפת אישורי CA של השרת .
REST v1
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
משלימים את הסבב כמו שמתואר במאמר החלפת אישורי CA של השרת .
REST v1beta4
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
משלימים את הסבב כמו שמתואר במאמר החלפת אישורי CA של השרת .
קבלת מידע על אישור CA של שרת
אתם יכולים לקבל מידע על אישור ה-CA של השרת, כמו מועד התפוגה שלו או רמת ההצפנה שהוא מספק.
המסוף
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
בוחרים בכרטיסייה אבטחה .
בקטע ניהול אישורי CA של שרת , אפשר לראות את תאריך התפוגה של אישור ה-CA של השרת בטבלה.
כדי לראות את סוג האישור, משתמשים בפקודה gcloud sql ssl server-ca-certs list --instance=INSTANCE_NAME .
gcloud
gcloud sql ssl server-ca-certs list \
--instance= INSTANCE_NAME
REST v1
כשמתארים את המופע, אפשר לראות פרטים על אישור ה-CA של השרת:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
}
REST v1beta4
כשמתארים את המופע, אפשר לראות פרטים על אישור ה-CA של השרת:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
}
הצגת התוכן של אישורי CA
אפשר להשתמש ב-openssl storeutl
כדי להציג את התוכן של אישורי CA.
כשמריצים את הפקודה sql ssl server-ca-certs list
יכול להיות שיוצגו כמה אישורי CA מפעולות קודמות שקשורות להחלפה.
gcloud
מריצים את הפקודה הבאה:
gcloud sql ssl server-ca-certs list \
--instance= INSTANCE_NAME \
--format= 'value(cert)' > temp_cert.pem
מחליפים את INSTANCE_NAME בשם המכונה.
משתמשים ב-openssl כדי לבדוק את התוכן של אישורי CA.
openssl storeutl -noout -text temp_cert.pem
הצגת התוכן של אישור שרת
אפשר להשתמש ב-
openssl s_client כדי להציג את התוכן של אישורי שרת.
gcloud
כדי לראות את התוכן של אישור השרת, מריצים את הפקודה הבאה:
openssl s_client -starttls mysql -connect INSTANCE_IP_ADDRESS :3306
מחליפים את INSTANCE_IP_ADDRESS בכתובת ה-IP של המכונה.
הודעה על תפוגה של SSL בשרת חיצוני
אם תוקף אישור ה-CA של השרת החיצוני עומד לפוג, צריך לעדכן את אישורי ה-SSL , כולל אישור ה-CA של השרת במופע המקומי. השלב הזה תלוי באופן הניהול של המופע המקומי. השלבים עשויים להיות שונים אם, לדוגמה, אתם משתמשים באישור CA של שרת RDS, באישור CA של שרת Cloud SQL או באישור CA של שרת מסד נתונים כללי.
אם תוקף אישור הלקוח עומד לפוג, צריך ליצור אישור ומפתח חדשים. ההגבלה הזו חלה גם על אישורי SSL בניהול Google וגם על אישורים בחתימה עצמית. Cloud de Confiance
מעדכנים את מופע הייצוג של מקור Cloud SQL עם אישורי ה-SSL החדשים.
ניהול אישורי שרת (CA משותף)
בקטע הזה מוסבר איך לנהל אישורי שרת במופעים שמשתמשים ב-CA משותפים או ב-CA בניהול הלקוח.
כדי להשתמש ב-CA משותף במצב שרת CA עבור המופע, צריך לציין GOOGLE_MANAGED_CAS_CA בהגדרה serverCaMode (Cloud SQL Admin API) או בדגל --server-ca-mode (gcloud CLI ) כשיוצרים או עורכים את המופע.
כדי להשתמש ב-CA בניהול הלקוח כמצב CA של השרת במופע, צריך לציין CUSTOMER_MANAGED_CAS_CA בהגדרה serverCaMode (Cloud SQL Admin API) או בדגל --server-ca-mode (ה-CLI של gcloud ) כשיוצרים או עורכים את המופע, וצריך שיהיה מאגר CA ו-CA תקינים. מידע נוסף זמין במאמר בנושא שימוש ב-CA בניהול הלקוח .
החלפת אישורי שרת
אם קיבלתם הודעה על כך שתוקף האישורים של השרת עומד לפוג, או אם אתם רוצים להתחיל בהחלפה, אתם צריכים לפעול לפי השלבים הבאים כדי להשלים את ההחלפה.
לפני שמתחילים את הסבב, צריך ליצור אישור שרת חדש לסבב הקרוב. אם כבר נוצר אישור שרת חדש לרוטציה הקרובה, אפשר לדלג על השלב הראשון בתהליך הבא.
כדי לבצע רוטציה של אישור השרת במופע, פועלים לפי השלבים הבאים:
אם אתם צריכים אישור שרת חדש, צרו אחד .
אם הלקוחות שלכם כבר סומכים על רשות האישורים הבסיסית, השלב הזה הוא אופציונלי. עם זאת, אם אתם צריכים לעדכן את הלקוחות בפרטי CA של השרת, אתם צריכים לבצע את הפעולות הבאות:
מורידים את המידע העדכני על אישור ה-CA של השרת.
מעדכנים את הלקוחות כדי להשתמש במידע העדכני ביותר על CA של השרת.
כדי להשלים את הרוטציה, מעבירים את האישור הפעיל למשבצת הקודמת ומעדכנים את האישור החדש כך שיהיה האישור הפעיל.
המסוף
מורידים את פרטי אישור ה-CA של השרת, שמקודדים כקובץ PEM, לסביבה המקומית:
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
בוחרים בכרטיסייה אבטחה .
לוחצים על ניהול אישורים כדי להרחיב אותו.
מוודאים שהאפשרות Rotate server certificate (החלפת אישור השרת) מופיעה כאפשרות זמינה, אבל לא בוחרים בה עדיין.
אם אין אישורים שעומדים בדרישות, האפשרות rotate (סיבוב) לא זמינה. צריך ליצור אישור שרת חדש.
לוחצים על הורדת אישורים .
כדי לעדכן את כל לקוחות MySQL כך שישתמשו במידע החדש, מעתיקים את הקובץ שהורדתם למכונות המארחות של הלקוחות ומחליפים את הקובץ הקיים server-ca.pem.
אחרי שמעדכנים את הלקוחות, משלימים את הרוטציה:
חוזרים לכרטיסייה אבטחה .
לוחצים על ניהול אישורים כדי להרחיב אותו.
בוחרים באפשרות סיבוב אישור .
בתיבת הדו-שיח Confirm certificate rotation (אישור החלפת אישורים), לוחצים על Rotate (החלפה).
מוודאים שהלקוחות מתחברים בצורה תקינה.
אם יש לקוחות שלא מתחברים באמצעות האישור החדש, אפשר לבחור באפשרות החזרת האישור כדי לחזור להגדרה הקודמת.
gcloud
כדי ליצור אישור שרת, משתמשים בפקודה הבאה:
gcloud sql ssl server-certs create \
--instance=INSTANCE
מחליפים את INSTANCE בשם המכונה.
חשוב לוודא שאתם משתמשים בחבילת האישורים העדכנית ביותר .
אם לא משתמשים בחבילת ה-CA העדכנית, מריצים את הפקודה הבאה כדי להוריד את נתוני ה-CA העדכניים של השרת עבור המופע לקובץ PEM מקומי:
gcloud sql ssl server-certs list \
--format="value(ca_cert.cert)" \
--instance=INSTANCE_NAME > \
FILE_PATH /server-ca.pem
אפשר גם להוריד את חבילות ה-CA מהטבלה חבילת אישורי CA בסיסיים ואזוריים בדף הזה.
לאחר מכן מעדכנים את כל הלקוחות כך שישתמשו במידע חדש על אישור CA של השרת. לשם כך, מעתיקים את הקובץ שהורדתם למחשבי המארחים של הלקוחות ומחליפים את קובצי server-ca.pem הקיימים.
אחרי שתעדכנו את כל הלקוחות (אם נדרשים עדכונים ללקוחות),
תצטרכו להשלים את הרוטציה:
gcloud sql ssl server-certs rotate \
--instance=INSTANCE_NAME
מוודאים שהלקוחות מתחברים בצורה תקינה.
אם יש לקוחות שלא מתחברים באמצעות אישור השרת החדש, צריך לחזור להגדרה הקודמת.
REST v1
יוצרים אישור שרת.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
PROJECT_ID : מזהה הפרויקט
INSTANCE_ID : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
אם אתם צריכים להוריד מידע על אישור CA של השרת, אתם יכולים להשתמש בפקודה הבאה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
PROJECT_ID : מזהה הפרויקט
INSTANCE_ID : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
משלימים את הסבב.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
PROJECT_ID : מזהה הפרויקט
INSTANCE_ID : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
REST v1beta4
יוצרים אישור שרת.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
PROJECT_ID : מזהה הפרויקט
INSTANCE_ID : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
אם אתם צריכים להוריד מידע על אישור CA של השרת, אתם יכולים להשתמש בפקודה הבאה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
PROJECT_ID : מזהה הפרויקט
INSTANCE_ID : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
משלימים את הסבב.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
PROJECT_ID : מזהה הפרויקט
INSTANCE_ID : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
חזרה לגרסה קודמת של רוטציית אישורים
אחרי שמסיימים את הרוטציה של אישור השרת, כל הלקוחות צריכים להשתמש באישור החדש כדי להתחבר למופע Cloud SQL. אם הלקוחות לא מעודכנים בצורה נכונה כדי להשתמש בפרטי האישור החדשים, הם לא יכולים להתחבר למופע באמצעות SSL/TLS. במקרה כזה, אפשר לחזור להגדרות הקודמות של האישור.
פעולת חזרה מחזירה את האישור הפעיל למשבצת 'בקרוב' ומחליפה כל אישור אחר שמופיע בה. האישור 'הקודם' הופך לאישור הפעיל, והגדרת האישור חוזרת למצב הקודם שלה לפני שהשלמתם את הרוטציה.
המסוף
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
בוחרים בכרטיסייה אבטחה .
לוחצים על ניהול אישורים כדי להרחיב אותו.
בוחרים באפשרות Rollback server certificate (החזרת אישור השרת לגרסה קודמת).
אם אין אישורים שעומדים בדרישות,
אפשרות החזרה לגרסה הקודמת לא תהיה זמינה.
בתיבת הדו-שיח Confirm certificate rollback (אישור החזרה לגרסה קודמת של האישור), בוחרים באפשרות Rollback (חזרה לגרסה קודמת).
החזרה לגרסה הקודמת עשויה להימשך כמה שניות.
gcloud
gcloud sql ssl server-certs rollback \
--instance=INSTANCE_NAME
REST v1
מציגים את רשימת אישורי השרת.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
PROJECT_ID : מזהה הפרויקט
INSTANCE_ID : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
מעתיקים את השדה sha1Fingerprint של הגרסה שאליה רוצים לחזור.
מחפשים את הגרסה עם הערך createTime שקודם לגרסה עם הערך sha1Fingerprint שמוצג כ-activeVersion.
חזרה למצב הקודם של הסבב.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
PROJECT_ID : מזהה הפרויקט
INSTANCE_ID : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
תוכן בקשת JSON:
{
"rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint "}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
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)
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
REST v1beta4
מציגים את רשימת אישורי השרת.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
PROJECT_ID : מזהה הפרויקט
INSTANCE_ID : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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"
}
מעתיקים את השדה sha1Fingerprint של הגרסה שאליה רוצים לחזור.
מחפשים את הגרסה עם הערך createTime שקודם לגרסה עם הערך sha1Fingerprint שמוצג כ-activeVersion.
חזרה למצב הקודם של הסבב.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
PROJECT_ID : מזהה הפרויקט
INSTANCE_ID : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
תוכן בקשת JSON:
{
"rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint "}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
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)
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
הצגת התוכן של אישורי CA
אפשר להשתמש בכלי השירות openssl storeutl כדי לראות את התוכן של אישורי CA.
כשמריצים את הפקודה sql ssl server-certs list , תמיד מקבלים כמה אישורי CA בגלל שרשרת האמון.
יכול להיות שתקבלו גם כמה אישורי CA מפעולות קודמות שקשורות להחלפה.
gcloud
מריצים את הפקודה הבאה:
gcloud sql ssl server-certs list \
--instance= INSTANCE_NAME \
--format= 'value(ca_cert.cert)' > temp_cert.pem
מחליפים את INSTANCE_NAME בשם המכונה.
משתמשים ב-openssl כדי לבדוק את התוכן של אישורי CA.
openssl storeutl -noout -text temp_cert.pem
הצגת התוכן של אישור שרת
אפשר להשתמש בכלי השירות openssl ובפקודה sql ssl server-certs list כדי להציג את התוכן של אישור שרת.
כשמריצים את הפקודה ה-CLI של gcloud , תמיד מקבלים כמה אישורי CA בגלל שרשרת האמון. יכול להיות שתקבלו גם כמה אישורי CA מפעולות קודמות שקשורות להחלפה.
gcloud
שימוש ב-openssl s_client בלבד :
openssl s_client -starttls mysql -connect INSTANCE_IP_ADDRESS :3306
מחליפים את INSTANCE_IP_ADDRESS בכתובת ה-IP של המכונה.
שימוש ב-gcloud CLI וב-openssl storeutl :
מריצים את הפקודה הבאה:
gcloud sql ssl server-certs list \
--instance= INSTANCE_NAME \
--format= 'value(ssl_cert.cert)' > temp_cert.pem
מחליפים את INSTANCE_NAME בשם המכונה.
משתמשים ב-openssl כדי לבדוק את התוכן של אישורי השרת.
openssl storeutl -noout -text temp_cert.pem
הורדת חבילות של אישורי CA בסיסיים ואזוריים עבור CA משותף
אם אתם משתמשים בהגדרת CA משותפת שמנוהלת על ידי Google, אתם יכולים להוריד את חבילות אישורי ה-CA של רשות אישורי הבסיס והאזוריות מהטבלה הבאה.
חבילות האישורים האלה לא חלות על מקרים שבהם נעשה שימוש באפשרויות של CA לכל מופע או בניהול הלקוח.
איפוס ההגדרה של SSL/TLS
אפשר לאפס לגמרי את ההגדרה של SSL/TLS.
זהירות: ביצוע הפעולה הזו יבטל את האפשרות להתחבר למופע באמצעות SSL/TLS עד ליצירת אישורי לקוח חדשים שיחליפו את האישורים שהיו בשימוש קודם.
המסוף
נכנסים לדף Cloud SQL Instances במסוף Cloud de Confiance .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
עוברים אל הקטע איפוס הגדרת SSL .
לוחצים על איפוס הגדרת SSL .
gcloud
מרעננים את האישור:
gcloud sql instances reset-ssl-config INSTANCE_NAME
gcloud sql instances restart INSTANCE_NAME
יצירת אישורי לקוח חדשים .
REST v1beta4
מרעננים את האישור:
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
project-id : מזהה הפרויקט
instance-id : מזהה המכונה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
מריצים את הפקודה הבאה:
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)
מריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
תשובה
{
"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 "
}
יצירת אישורי לקוח חדשים .
המאמרים הבאים