בדף הזה מוסבר איך לנהל את אישורי רשות האישורים (CA) של הלקוח והשרת.
ניהול אישורי לקוח
כדי לנהל את אישורי הלקוח ב-Cloud SQL, פועלים לפי השלבים הבאים.
אחזור אישור לקוח
אפשר לאחזר את החלק של המפתח הציבורי מאישור לקוח. עם זאת, אי אפשר לאחזר את המפתח הפרטי. אם איבדתם את המפתח הפרטי, אתם צריכים ליצור אישור חדש.
המסוף
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, לוחצים על Connections (קישורים).
לוחצים על הכרטיסייה אבטחה .
בקטע ניהול אישורי לקוח , לוחצים על שם האישור.
נפתח הדף SSL Client Certificate (אישור לקוח ל-SSL) ומוצג בו אישור הלקוח (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 : טביעת האצבע של האישור בפורמט SHA1
ה-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 : טביעת האצבע של האישור בפורמט SHA1
ה-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 במסוף Google Cloud .
כניסה לדף 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 : טביעת האצבע של האישור בפורמט SHA1
ה-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 : טביעת האצבע של האישור בפורמט SHA1
ה-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 ושל Cloud SQL Auth Proxy יקבלו באופן אוטומטי אישור חדש כשהם יתחברו.
המסוף
מורידים את אישור ה-CA החדש של השרת, שמקודד כקובץ PEM, לסביבה המקומית:
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
כניסה לדף 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 במסוף Google Cloud .
כניסה לדף 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 במסוף Google Cloud .
כניסה לדף 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 במסוף Google Cloud .
כניסה לדף 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 CloudGoogle וגם על אישורים בחתימה עצמית.
מעדכנים את מופע הייצוג של מקור Cloud SQL עם אישורי ה-SSL החדשים.
ניהול אישורי שרת (CA משותף)
בקטע הזה מוסבר איך לנהל אישורי שרת במופעים שמשתמשים ב-CA משותפים או ב-CA בניהול הלקוח.
אפשר להצטרף לשימוש ב-CA משותף במצב CA של שרת עבור המופע על ידי ציון GOOGLE_MANAGED_CAS_CA בהגדרה serverCaMode (Cloud SQL Admin API) או בדגל --server-ca-mode (ה-CLI של gcloud ) כשיוצרים או עורכים את המופע.
כדי להשתמש ב-CA בניהול הלקוח כמצב CA של השרת במופע, צריך לציין CUSTOMER_MANAGED_CAS_CA בהגדרה serverCaMode (Cloud SQL Admin API) או בדגל --server-ca-mode (ה-CLI של gcloud ) כשיוצרים או עורכים את המופע, וצריך שיהיה לכם מאגר CA ו-CA תקינים. מידע נוסף מופיע במאמר בנושא שימוש ב-CA בניהול הלקוח .
הפעלה או השבתה של רוטציה אוטומטית של אישורי שרת
מומלץ להפעיל רוטציה אוטומטית של אישורי שרת.
כשהתכונה הזו מופעלת, Cloud SQL מבצע רוטציה אוטומטית של אישור השרת במהלך עדכון התחזוקה המתוזמן באופן קבוע או כשמבצעים תחזוקה בשירות עצמי עד 180 ימים לפני שתוקף האישור פג. רוטציה אוטומטית של אישורים עוזרת לכם להימנע מהפרעות בחיבור שנגרמות בגלל אישורים שתוקפם פג, ומבטלת את הצורך לבצע רוטציה של האישורים באופן ידני.
הערה: אישור השרת לא יוחלף אוטומטית אם דילגתם על עדכוני תחזוקה, או אם במהלך אירוע התחזוקה מערכת Cloud SQL מזהה שנשארו יותר מ-180 ימים עד לתאריך התפוגה של האישור.
אפשר להפעיל רוטציה אוטומטית של אישורי שרת כשיוצרים את המופע או כשעורכים מופע קיים.
בשלבים הבאים מוסבר איך לערוך מופע קיים כדי להפעיל או להשבית את הרוטציה האוטומטית של אישורי השרת.
המסוף
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
לוחצים על Edit .
בקטע Customize your instance (התאמה אישית של המופע), מרחיבים את Show configuration options (הצגת אפשרויות ההגדרה).
לוחצים על Security כדי להרחיב את הקטע של הגדרות האבטחה.
מבצעים אחת מהפעולות הבאות:
כדי להפעיל סיבוב אוטומטי של אישורי שרת, מסמנים את התיבה Rotate server certificates automatically (סיבוב אוטומטי של אישורי שרת).
כדי להשבית את החלפת אישורי השרת באופן אוטומטי, מבטלים את הסימון בתיבה Rotate server certificates automatically .
לוחצים על Save .
gcloud
כדי לערוך את מצב הרוטציה של אישורי השרת עבור מופע, משתמשים בפקודה gcloud sql instances patch :
gcloud sql instances patch INSTANCE_NAME \
--project= PROJECT_ID \
--server-certificate-rotation-mode= SERVER_CERTIFICATE_ROTATION_MODE
מחליפים את הפרטים הבאים:
INSTANCE_NAME : השם של מופע Cloud SQL שיש לו אישור שרת שאתם משנים
PROJECT_ID : המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע
SERVER_CERTIFICATE_ROTATION_MODE : מציינים NO_AUTOMATIC_ROTATION או AUTOMATIC_ROTATION_DURING_MAINTENANCE.
REST v1
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_NAME
תוכן בקשת JSON:
{
"kind": "sql#instance",
"name": "INSTANCE_NAME ",
"project": "PROJECT_ID ",
"settings": {
"ipConfiguration": {
"serverCertificateRotationMode": "SERVER_CERTIFICATE_ROTATION_MODE "
},
"kind": "sql#settings"
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X PATCH \ -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_NAME "
PowerShell (Windows)
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_NAME " | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2026-01-16T02:32:12.281Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "INSTANCE_NAME ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
כדי לראות איך בקשת API בארכיטקטורת REST הבסיסית מורכבת עבור המשימה הזו, אפשר לעיין בדף APIs Explorer בנושא instances:patch .
REST v1beta4
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_NAME
תוכן בקשת JSON:
{
"kind": "sql#instance",
"name": "INSTANCE_NAME ",
"project": "PROJECT_ID ",
"settings": {
"ipConfiguration": {
"serverCertificateRotationMode": "SERVER_CERTIFICATE_ROTATION_MODE "
},
"kind": "sql#settings"
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
Curl (Linux, macOS או Cloud Shell)
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X PATCH \ -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_NAME "
PowerShell (Windows)
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method PATCH ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_NAME " | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_NAME ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2026-01-16T02:32:12.281Z",
"operationType": "UPDATE",
"name": "OPERATION_ID ",
"targetId": "INSTANCE_NAME ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
כדי לראות איך בקשת API בארכיטקטורת REST הבסיסית מורכבת עבור המשימה הזו, אפשר לעיין בדף APIs Explorer בנושא instances:patch .
החלפה ידנית של אישורי השרת
אם קיבלתם הודעה על כך שתוקף האישורים של השרת עומד לפוג או שאתם רוצים להתחיל בהחלפה אבל לא הפעלתם החלפה אוטומטית של אישורים, אתם צריכים לבצע את השלבים הבאים כדי להשלים את ההחלפה. לפני שמתחילים את הרוטציה, צריך ליצור אישור שרת חדש לרוטציה הקרובה. אם כבר נוצר אישור שרת חדש לרוטציה הקרובה, אפשר לדלג על השלב הראשון בתהליך הבא.
כדי לבצע רוטציה של אישור השרת במופע, מבצעים את השלבים הבאים:
אם אתם צריכים אישור שרת חדש, צרו אחד .
אם הלקוחות כבר סומכים על רשות האישורים הבסיסית, השלב הזה הוא אופציונלי. אבל אם אתם צריכים לעדכן את הלקוחות בפרטי CA של השרת, אתם צריכים לבצע את הפעולות הבאות:
מורידים את המידע העדכני על אישורי CA של השרת.
מעדכנים את הלקוחות כך שישתמשו במידע העדכני ביותר על CA של השרת.
כדי להשלים את הרוטציה, מעבירים את האישור הפעיל למשבצת הקודמת ומעדכנים את האישור החדש כך שיהיה האישור הפעיל.
המסוף
מורידים את פרטי אישור ה-CA של השרת, שמקודדים כקובץ PEM, לסביבה המקומית:
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, לוחצים על Connections (קישורים).
לוחצים על הכרטיסייה אבטחה .
לוחצים על ניהול אישורים כדי להרחיב אותו.
מוודאים שהאפשרות Rotate server certificate (החלפת אישור השרת) מופיעה כאפשרות זמינה, אבל לא בוחרים בה עדיין.
אם אין אישורים שעומדים בדרישות, האפשרות rotate (החלפה) לא זמינה. תצטרכו ליצור אישור שרת חדש.
לוחצים על הורדת אישורים .
כדי לעדכן את כל לקוחות MySQL כך שישתמשו במידע החדש, מעתיקים את הקובץ שהורד למכונות המארחות של הלקוחות ומחליפים את הקובץ הקיים server-ca.pem.
אחרי שמעדכנים את הלקוחות, משלימים את הרוטציה:
חוזרים לכרטיסייה אבטחה .
לוחצים על ניהול אישורים כדי להרחיב אותו.
בוחרים באפשרות סיבוב האישור .
בתיבת הדו-שיח אישור החלפת האישור , לוחצים על החלפה .
מוודאים שהלקוחות מתחברים בצורה תקינה.
אם יש לקוחות שלא מתחברים באמצעות האישור החדש, אפשר לבחור באפשרות החזרת האישור כדי לחזור להגדרה הקודמת.
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 במסוף Google Cloud .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, לוחצים על Connections (קישורים).
לוחצים על הכרטיסייה אבטחה .
לוחצים על ניהול אישורים כדי להרחיב אותו.
בוחרים באפשרות החזרת אישור השרת .
אם אין אישורים שעומדים בדרישות, האפשרות לשחזור לא זמינה.
בתיבת הדו-שיח אישור החזרה לגרסה קודמת של האישור , לוחצים על חזרה לגרסה קודמת .
החזרה לגרסה הקודמת עשויה להימשך כמה שניות.
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 כדי להציג את התוכן של אישור שרת.
כשמריצים את הפקודה gcloud CLI , תמיד מקבלים כמה אישורי 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 לכל מופע או CA בניהול הלקוח.
איפוס ההגדרה של SSL/TLS
אפשר לאפס לגמרי את ההגדרה של SSL/TLS.
זהירות: ביצוע הפעולה הזו יבטל את האפשרות להתחבר למופע באמצעות SSL/TLS עד ליצירת אישורי לקוח חדשים שיחליפו את האישורים שהיו בשימוש קודם.
המסוף
נכנסים לדף Cloud SQL Instances במסוף Google Cloud .
כניסה לדף Cloud SQL Instances
כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
בתפריט הניווט של SQL, לוחצים על Connections (קישורים).
עוברים לקטע איפוס הגדרת ה-SSL .
לוחצים על Reset SSL Configuration (איפוס הגדרת 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 "
}
יצירת אישורי לקוח חדשים .
המאמרים הבאים