ניהול אישורי SSL/TLS

בדף הזה מוסבר איך לנהל את אישורי רשות האישורים (CA) של הלקוח והשרת.

ניהול אישורי לקוח

הנה פרוצדורות לניהול אישורי לקוח ב-Cloud SQL.

אחזור אישור לקוח

אפשר לאחזר את החלק של המפתח הציבורי מאישור לקוח. עם זאת, אי אפשר לאחזר את המפתח הפרטי. אם איבדתם את המפתח הפרטי, אתם צריכים ליצור אישור חדש.

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
  4. בוחרים בכרטיסייה אבטחה.
  5. בקטע ניהול אישורי לקוח, לוחצים על שם האישור.
  6. נפתח הדף 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

  1. מציגים את רשימת האישורים במופע כדי לקבל את טביעת האצבע של האישור שרוצים לאחזר:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    מציינים את השדה sha1Fingerprint של האישור שרוצים לאחזר. אל תכללו את המירכאות.

  2. מאחזרים את האישור:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה
    • sha1FingerPrint: sha1FingerPrint של האישור

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  3. מעתיקים את כל נתוני האישור שמופיעים בין המירכאות לקובץ, למשל client-cert.pem. אל תעתיקו את המירכאות עצמן.

REST v1beta4

  1. מציגים את רשימת האישורים במופע כדי לקבל את טביעת האצבע של האישור שרוצים לאחזר:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    מציינים את השדה sha1Fingerprint של האישור שרוצים לאחזר. אל תכללו את המירכאות.

  2. מאחזרים את האישור:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה
    • sha1FingerPrint: sha1FingerPrint של האישור

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  3. מעתיקים את כל נתוני האישור שמופיעים בין המירכאות לקובץ, למשל client-cert.pem. אל תעתיקו את המירכאות עצמן.

מחיקה של אישור לקוח

כשמוחקים אישור לקוח, שרת מסד הנתונים מתעדכן ואין צורך להפעיל אותו מחדש.

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
  4. בוחרים בכרטיסייה אבטחה.
  5. בקטע ניהול אישורי לקוח, מוצאים את האישור שרוצים למחוק ולוחצים על מחק..
  6. בחלונית Delete client certificate, לוחצים על Ok.

gcloud

מוחקים את אישור הלקוח באמצעות הפקודה ssl client-certs delete:

gcloud sql ssl client-certs delete CERT_NAME \
--instance=INSTANCE_NAME

REST v1

  1. מציגים את רשימת האישורים במופע כדי לקבל את טביעת האצבע של האישור שרוצים למחוק:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    רושמים את הערך של השדה sha1Fingerprint של האישור שרוצים למחוק. אל תכללו את המירכאות.

  2. מחיקת האישור:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה
    • sha1FingerPrint: sha1FingerPrint של האישור

    ה-method של ה-HTTP וכתובת ה-URL:

    DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

  1. מציגים את רשימת האישורים במופע כדי לקבל את טביעת האצבע של האישור שרוצים למחוק:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

    רושמים את הערך של השדה sha1Fingerprint של האישור שרוצים למחוק. אל תכללו את המירכאות.

  2. מחיקת האישור:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה
    • sha1FingerPrint: sha1FingerPrint של האישור

    ה-method של ה-HTTP וכתובת ה-URL:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

ניהול אישורי CA של שרת (CA לכל מופע)

בקטע הזה מוסבר איך לנהל אישורי CA של שרתים שנוצרים באופן פנימי על ידי Cloud SQL. זהו מצב ברירת המחדל של CA בשרת ב-Cloud SQL. בהיררכיית רשויות האישורים הזו, Cloud SQL יוצרת רשות אישורים (CA) של שרת לכל מכונה.

החלפת אישורי CA של השרת

אם קיבלתם הודעה על כך שהאישורים שלכם עומדים לפוג, או אם אתם רוצים להתחיל בהחלפה, אתם צריכים לפעול לפי השלבים הבאים כדי להשלים את ההחלפה. לפני שמתחילים את הרוטציה, צריך שיהיה מופעל במופע שרת חדש של CA. אם כבר נוצר CA חדש לשרת, אפשר לדלג על השלב הראשון בתהליך הבא.

  1. יוצרים CA חדש לשרת.
  2. מורידים את פרטי אישור ה-CA החדש של השרת.
  3. צריך לעדכן את הלקוחות כך שישתמשו במידע החדש על אישור CA של השרת.
  4. משלימים את הרוטציה, שמעבירה את האישור הפעיל למשבצת 'הקודמת' ומעדכנת את האישור שנוסף לאחרונה כך שיהיה האישור הפעיל.

המסוף

מורידים את אישור ה-CA החדש של השרת, שמקודד כקובץ PEM, לסביבה המקומית:

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
  4. בוחרים בכרטיסייה אבטחה.
  5. לוחצים על ניהול אישורים כדי להרחיב אותו.
  6. בוחרים באפשרות החלפת אישור CA.

    אם אין אישורים שעומדים בדרישות, האפשרות rotate (סיבוב) לא זמינה. צריך ליצור אישור CA חדש של שרת.

  7. לוחצים על הורדת אישורים.

כדי לעדכן את כל לקוחות MySQL כך שישתמשו במידע החדש, מעתיקים את הקובץ שהורד למחשבי המארחים של הלקוחות ומחליפים את הקובץ הקיים server-ca.pem.

אחרי שמעדכנים את הלקוחות, משלימים את הרוטציה:

  1. חוזרים לכרטיסייה אבטחה.
  2. לוחצים על ניהול אישורים כדי להרחיב אותו.
  3. בוחרים באפשרות החלפת אישור CA.
  4. מוודאים שהלקוחות מתחברים בצורה תקינה.
  5. אם יש לקוחות שלא מתחברים באמצעות האישור החדש שהוחלף, אפשר לבחור באפשרות Rollback CA certificate (החזרת אישור CA) כדי לחזור להגדרה הקודמת.

gcloud

  1. יוצרים אישור CA של שרת:
    gcloud sql ssl server-ca-certs create \
    --instance=INSTANCE
  2. מורידים את פרטי האישור לקובץ PEM מקומי:
    gcloud sql ssl server-ca-certs list \
    --format="value(cert)" \
    --instance=INSTANCE_NAME > \
    FILE_PATH/FILE_NAME.pem
  3. כדי לעדכן את כל הלקוחות כך שישתמשו במידע החדש, צריך להעתיק את הקובץ שהורדתם למכונות המארחות של הלקוחות ולהחליף את קובצי ה-server-ca.pem הקיימים.
  4. אחרי שמעדכנים את הלקוחות, משלימים את הרוטציה:
    gcloud sql ssl server-ca-certs rotate \
    --instance=INSTANCE_NAME
          
  5. מוודאים שהלקוחות מתחברים בצורה תקינה.
  6. אם יש לקוחות שלא מתחברים באמצעות האישור החדש שהוחלף, אפשר לחזור להגדרה הקודמת.

REST v1

  1. מורידים את אישורי ה-CA של השרת:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/listServerCas

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  2. משלימים את הסבב:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

  1. מורידים את אישורי ה-CA של השרת:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/listServerCas

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  2. משלימים את הסבב:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

אם מופיעה שגיאה כשמנסים להחליף אישור עם ההודעה No upcoming/previous Server CA Certificate exists, צריך לוודא שמריצים את הפקודה במופע שמשתמש בהיררכיית CA לכל מופע. אפשר לראות איזו היררכיית CA מוגדרת למופע Cloud SQL באמצעות הפקודה gcloud sql instances describe. מידע נוסף זמין במאמר בנושא צפייה בפרטי המופע.

ביטול פעולה של החלפת אישור

אחרי שמסיימים את הרוטציה של האישורים, כל הלקוחות חייבים להשתמש באישור החדש כדי להתחבר למכונת Cloud SQL. אם הלקוחות לא מעודכנים בצורה נכונה כדי להשתמש בפרטי האישור החדשים, הם לא יכולים להתחבר למופע באמצעות SSL/TLS. במקרה כזה, אפשר לחזור להגדרת האישור הקודמת.

פעולת חזרה לגרסה קודמת מעבירה את האישור הפעיל למשבצת 'בקרוב' (ומחליפה כל אישור אחר שמופיע במשבצת הזו). האישור 'הקודם' הופך לאישור הפעיל, והגדרת האישור חוזרת למצב שבו הייתה לפני השלמת הרוטציה.

כדי לחזור להגדרת האישור הקודמת:

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
  4. בוחרים בכרטיסייה אבטחה.
  5. לוחצים על ניהול אישורים כדי להרחיב אותו.
  6. בוחרים באפשרות החזרת אישור CA.

    אם אין אישורים שעומדים בדרישות, אפשרות החזרה לגרסה הקודמת לא תהיה זמינה. אחרת, פעולת החזרה לגרסה הקודמת מסתיימת אחרי כמה שניות.

gcloud

gcloud sql ssl server-ca-certs rollback \
--instance=INSTANCE_NAME
   

REST v1

  1. מורידים את אישורי ה-CA של השרת:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/listServerCas

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  2. מעתיקים את השדה sha1Fingerprint של הגרסה שאליה רוצים לחזור.

    מחפשים את הגרסה עם הערך createTime שמופיע מיד לפני הגרסה עם הערך sha1Fingerprint שמוצג כ-activeVersion.

  3. החזרה לממשק הקודם:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    תוכן בקשת JSON:

    {
      "rotateServerCaContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

  1. מורידים את אישורי ה-CA של השרת:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/listServerCas

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  2. מעתיקים את השדה sha1Fingerprint של הגרסה שאליה רוצים לחזור.

    מחפשים את הגרסה עם הערך createTime שמופיע מיד לפני הגרסה עם הערך sha1Fingerprint שמוצג כ-activeVersion.

  3. החזרה לממשק הקודם:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • 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"}
    }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

אם מופיעה שגיאה כשמנסים לבטל את השינוי של רוטציה של CA של אישור, עם ההודעה No upcoming/previous Server CA Certificate exists, צריך לוודא שמריצים את הפקודה במופע שמשתמש בהיררכיית CA לכל מופע. אפשר לראות איזו היררכיית CA מוגדרת למופע Cloud SQL באמצעות הפקודה gcloud sql instances describe. מידע נוסף זמין במאמר בנושא צפייה בפרטי המופע.

התחלת סבב

לא צריך לחכות לאימייל מ-Cloud SQL כדי להתחיל בהחלפה. אפשר להתחיל שיחה בכל שלב. כשמתחילים רוטציה, נוצר אישור חדש והוא מוצב במשבצת 'בקרוב'. אם יש כבר אישור במשבצת 'בקרוב' בזמן הבקשה, האישור הזה יימחק. יכול להיות רק אישור אחד שצפוי להתקבל.

כדי להתחיל סיבוב:

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
  4. בוחרים בכרטיסייה אבטחה.
  5. לוחצים על ניהול אישורים כדי להרחיב אותו.
  6. לוחצים על יצירת אישור CA חדש.
  7. בוחרים באפשרות החלפת אישור CA.

    אם אין אישורים שעומדים בדרישות, אפשרות הרוטציה לא תהיה זמינה.

  8. משלימים את הסבב כמו שמתואר במאמר בנושא החלפת אישורי CA של השרת.

gcloud

  1. מתחילים את הסבב:
    gcloud sql ssl server-ca-certs create \
    --instance=INSTANCE_NAME
         
  2. משלימים את הסבב כמו שמתואר במאמר בנושא החלפת אישורי CA של השרת.

REST v1

  1. לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  2. משלימים את הסבב כמו שמתואר במאמר החלפת אישורי CA של השרת.

REST v1beta4

  1. לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  2. משלימים את הסבב כמו שמתואר במאמר החלפת אישורי CA של השרת.

קבלת מידע על אישור CA של שרת

אתם יכולים לקבל מידע על אישור ה-CA של השרת, כמו מועד התפוגה שלו או רמת ההצפנה שהוא מספק.

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
  4. בוחרים בכרטיסייה אבטחה.

    בקטע ניהול אישורי 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

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

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

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

הצגת התוכן של אישורי CA

אפשר להשתמש ב-openssl storeutl כדי להציג את התוכן של אישורי CA.

כשמריצים את הפקודה sql ssl server-ca-certs list יכול להיות שיוצגו כמה אישורי CA מפעולות קודמות שקשורות להחלפה.

gcloud

  1. מריצים את הפקודה הבאה:
    gcloud sql ssl server-ca-certs list \
      --instance=INSTANCE_NAME \
      --format='value(cert)' > temp_cert.pem

    מחליפים את INSTANCE_NAME בשם המכונה.

  2. משתמשים ב-openssl כדי לבדוק את התוכן של אישורי CA.
  3. 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 וגם על אישורים בחתימה עצמית. Google Cloud
  • מעדכנים את מופע הייצוג של מקור 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 בניהול הלקוח.

החלפת אישורי שרת

אם קיבלתם הודעה על כך שתוקף האישורים של השרת עומד לפוג, או אם אתם רוצים להתחיל בהחלפה, אתם צריכים לפעול לפי השלבים הבאים כדי להשלים את ההחלפה. לפני שמתחילים את הסבב, צריך ליצור אישור שרת חדש לסבב הקרוב. אם כבר נוצר אישור שרת חדש לרוטציה הקרובה, אפשר לדלג על השלב הראשון בתהליך הבא.

כדי לבצע רוטציה של אישור השרת במופע, פועלים לפי השלבים הבאים:

  1. אם אתם צריכים אישור שרת חדש, צרו אחד.

  2. אם הלקוחות שלכם כבר סומכים על רשות האישורים הבסיסית, השלב הזה הוא אופציונלי. עם זאת, אם אתם צריכים לעדכן את הלקוחות בפרטי CA של השרת, אתם צריכים לבצע את הפעולות הבאות:

    1. מורידים את המידע העדכני על אישור ה-CA של השרת.
    2. מעדכנים את הלקוחות כדי להשתמש במידע העדכני ביותר על CA של השרת.
  3. כדי להשלים את הרוטציה, מעבירים את האישור הפעיל למשבצת הקודמת ומעדכנים את האישור החדש כך שיהיה האישור הפעיל.

המסוף

מורידים את פרטי אישור ה-CA של השרת, שמקודדים כקובץ PEM, לסביבה המקומית:

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
  4. בוחרים בכרטיסייה אבטחה.
  5. לוחצים על ניהול אישורים כדי להרחיב אותו.
  6. מוודאים שהאפשרות Rotate server certificate (החלפת אישור השרת) מופיעה כאפשרות זמינה, אבל לא בוחרים בה עדיין.

    אם אין אישורים שעומדים בדרישות, האפשרות rotate (סיבוב) לא זמינה. צריך ליצור אישור שרת חדש.

  7. לוחצים על הורדת אישורים.

כדי לעדכן את כל לקוחות MySQL כך שישתמשו במידע החדש, מעתיקים את הקובץ שהורדתם למכונות המארחות של הלקוחות ומחליפים את הקובץ הקיים server-ca.pem.

אחרי שמעדכנים את הלקוחות, משלימים את הרוטציה:

  1. חוזרים לכרטיסייה אבטחה.
  2. לוחצים על ניהול אישורים כדי להרחיב אותו.
  3. בוחרים באפשרות סיבוב אישור.
  4. בתיבת הדו-שיח Confirm certificate rotation (אישור החלפת אישורים), לוחצים על Rotate (החלפה).
  5. מוודאים שהלקוחות מתחברים בצורה תקינה.

    אם יש לקוחות שלא מתחברים באמצעות האישור החדש, אפשר לבחור באפשרות החזרת האישור כדי לחזור להגדרה הקודמת.

gcloud

  1. כדי ליצור אישור שרת, משתמשים בפקודה הבאה:
    gcloud sql ssl server-certs create \
    --instance=INSTANCE
  2. מחליפים את INSTANCE בשם המכונה.
  3. חשוב לוודא שאתם משתמשים בחבילת האישורים העדכנית ביותר. אם לא משתמשים בחבילת ה-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 הקיימים.

  4. אחרי שתעדכנו את כל הלקוחות (אם נדרשים עדכונים ללקוחות), תצטרכו להשלים את הרוטציה:
    gcloud sql ssl server-certs rotate \
    --instance=INSTANCE_NAME
          
  5. מוודאים שהלקוחות מתחברים בצורה תקינה.

    אם יש לקוחות שלא מתחברים באמצעות אישור השרת החדש, צריך לחזור להגדרה הקודמת.

REST v1

  1. יוצרים אישור שרת.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: מזהה הפרויקט
    • INSTANCE_ID: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/addServerCertificate

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  2. אם אתם צריכים להוריד מידע על אישור CA של השרת, אתם יכולים להשתמש בפקודה הבאה.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: מזהה הפרויקט
    • INSTANCE_ID: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listServerCertificates

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  3. משלימים את הסבב.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: מזהה הפרויקט
    • INSTANCE_ID: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateServerCertificate

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

  1. יוצרים אישור שרת.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: מזהה הפרויקט
    • INSTANCE_ID: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/addServerCertificate

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  2. אם אתם צריכים להוריד מידע על אישור CA של השרת, אתם יכולים להשתמש בפקודה הבאה.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: מזהה הפרויקט
    • INSTANCE_ID: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/listServerCertificates

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  3. משלימים את הסבב.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: מזהה הפרויקט
    • INSTANCE_ID: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateServerCertificate

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

חזרה לגרסה קודמת של רוטציית אישורים

אחרי שמסיימים את הרוטציה של אישור השרת, כל הלקוחות צריכים להשתמש באישור החדש כדי להתחבר למופע Cloud SQL. אם הלקוחות לא מעודכנים בצורה נכונה כדי להשתמש בפרטי האישור החדשים, הם לא יכולים להתחבר למופע באמצעות SSL/TLS. במקרה כזה, אפשר לחזור להגדרות הקודמות של האישור.

פעולת חזרה מחזירה את האישור הפעיל למשבצת 'בקרוב' ומחליפה כל אישור אחר שמופיע בה. האישור 'הקודם' הופך לאישור הפעיל, והגדרת האישור חוזרת למצב הקודם שלה לפני שהשלמתם את הרוטציה.

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
  4. בוחרים בכרטיסייה אבטחה.
  5. לוחצים על ניהול אישורים כדי להרחיב אותו.
  6. בוחרים באפשרות Rollback server certificate (החזרת אישור השרת לגרסה קודמת).

    אם אין אישורים שעומדים בדרישות, אפשרות החזרה לגרסה הקודמת לא תהיה זמינה.

  7. בתיבת הדו-שיח Confirm certificate rollback (אישור החזרה לגרסה קודמת של האישור), בוחרים באפשרות Rollback (חזרה לגרסה קודמת).

    החזרה לגרסה הקודמת עשויה להימשך כמה שניות.

gcloud

gcloud sql ssl server-certs rollback \
--instance=INSTANCE_NAME
   

REST v1

  1. מציגים את רשימת אישורי השרת.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: מזהה הפרויקט
    • INSTANCE_ID: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listServerCertificates

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  2. מעתיקים את השדה sha1Fingerprint של הגרסה שאליה רוצים לחזור.

    מחפשים את הגרסה עם הערך createTime שקודם לגרסה עם הערך sha1Fingerprint שמוצג כ-activeVersion.

  3. חזרה למצב הקודם של הסבב.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: מזהה הפרויקט
    • INSTANCE_ID: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateServerCertificate

    תוכן בקשת JSON:

    {
      "rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

REST v1beta4

  1. מציגים את רשימת אישורי השרת.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • PROJECT_ID: מזהה הפרויקט
    • INSTANCE_ID: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/listServerCertificates

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  2. מעתיקים את השדה sha1Fingerprint של הגרסה שאליה רוצים לחזור.

    מחפשים את הגרסה עם הערך createTime שקודם לגרסה עם הערך sha1Fingerprint שמוצג כ-activeVersion.

  3. חזרה למצב הקודם של הסבב.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • 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"}
    }
    

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

הצגת התוכן של אישורי CA

אפשר להשתמש בכלי השירות openssl storeutl כדי לראות את התוכן של אישורי CA.

כשמריצים את הפקודה sql ssl server-certs list, תמיד מקבלים כמה אישורי CA בגלל שרשרת האמון. יכול להיות שתקבלו גם כמה אישורי CA מפעולות קודמות שקשורות להחלפה.

gcloud

  1. מריצים את הפקודה הבאה:
    gcloud sql ssl server-certs list \
      --instance=INSTANCE_NAME \
      --format='value(ca_cert.cert)' > temp_cert.pem

    מחליפים את INSTANCE_NAME בשם המכונה.

  2. משתמשים ב-openssl כדי לבדוק את התוכן של אישורי CA.
  3. 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:

  1. מריצים את הפקודה הבאה:
    gcloud sql ssl server-certs list \
      --instance=INSTANCE_NAME \
      --format='value(ssl_cert.cert)' > temp_cert.pem

    מחליפים את INSTANCE_NAME בשם המכונה.

  2. משתמשים ב-openssl כדי לבדוק את התוכן של אישורי השרת.
  3. openssl storeutl -noout -text temp_cert.pem
       

הורדת חבילות של אישורי CA בסיסיים ואזוריים עבור CA משותף

אם אתם משתמשים בהגדרת CA משותפת שמנוהלת על ידי Google, אתם יכולים להוריד את חבילות אישורי ה-CA של רשות אישורי הבסיס והאזוריות מהטבלה הבאה.

חבילות האישורים האלה לא חלות על מקרים שבהם נעשה שימוש באפשרויות של CA לכל מופע או בניהול הלקוח.

שם האזור מיקום חבילת אישורים
גלובלי
CA לכל האזורים כל המיקומים global.pem
אסיה
asia-east1 טייוואן asia-east1.pem
asia-east2 הונג קונג asia-east2.pem
asia-northeast1 טוקיו asia-northeast1.pem
asia-northeast2 אוסקה asia-northeast2.pem
asia-northeast3 סיאול asia-northeast3.pem
asia-south1 מומבאי asia-south1.pem
asia-south2 דלהי asia-south2.pem
asia-southeast1 סינגפור asia-southeast1.pem
asia-southeast2 ג'קארטה asia-southeast2.pem
אפריקה
africa-south1 יוהנסבורג africa-south1.pem
אוסטרליה
australia-southeast1 סידני australia-southeast1.pem
australia-southeast2 מלבורן australia-southeast2.pem
אירופה
europe-central2 ורשה europe-central2.pem
europe-north1 פינלנד europe-north1.pem
europe-north2 שטוקהולם europe-north2.pem
europe-southwest1 מדריד europe-southwest1.pem
europe-west1 בלגיה europe-west1.pem
europe-west2 לונדון europe-west2.pem
europe-west3 פרנקפורט europe-west3.pem
europe-west4 הולנד europe-west4.pem
europe-west6 ציריך europe-west6.pem
europe-west8 מילאנו europe-west8.pem
europe-west9 פריז europe-west9.pem
europe-west10 ברלין europe-west10.pem
europe-west12 טורינו europe-west12.pem
המזרח התיכון
me-central1 דוחה me-central1.pem
me-central2 דמאם me-central2.pem
me-west1 תל אביב me-west1.pem
צפון אמריקה
northamerica-northeast1 מונטריאול northamerica-northeast1.pem
northamerica-northeast2 טורונטו northamerica-northeast2.pem
northamerica-south1 מקסיקו northamerica-south1.pem
us-central1 איווה us-central1.pem
us-east1 דרום קרוליינה us-east1.pem
us-east4 צפון וירג'יניה us-east4.pem
us-east5 קולומבוס us-east5.pem
us-south1 דאלאס us-south1.pem
us-west1 אורגון us-west1.pem
us-west2 לוס-אנג׳לס us-west2.pem
us-west3 סולט לייק סיטי us-west3.pem
us-west4 לאס וגאס us-west4.pem
דרום אמריקה
southamerica-east1 סאו פאולו southamerica-east1.pem
southamerica-west1 סנטיאגו southamerica-west1.pem

איפוס ההגדרה של SSL/TLS

אפשר לאפס לגמרי את ההגדרה של SSL/TLS.

המסוף

  1. נכנסים לדף Cloud SQL Instances במסוף Google Cloud .

    כניסה לדף Cloud SQL Instances

  2. כדי לפתוח את הדף סקירה כללית של מכונה, לוחצים על שם המכונה.
  3. בתפריט הניווט של SQL, בוחרים באפשרות Connections (קישורים).
  4. עוברים אל הקטע איפוס הגדרת SSL.
  5. לוחצים על איפוס הגדרת SSL.

gcloud

  1. מרעננים את האישור:

    gcloud sql instances reset-ssl-config INSTANCE_NAME
  2. gcloud sql instances restart INSTANCE_NAME
  3. יצירת אישורי לקוח חדשים.

REST v1beta4

  1. מרעננים את האישור:

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • project-id: מזהה הפרויקט
    • instance-id: מזהה המכונה

    ה-method של ה-HTTP וכתובת ה-URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/resetSslConfig

    כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

    אתם אמורים לקבל תגובת JSON שדומה לזו:

  2. יצירת אישורי לקוח חדשים.

המאמרים הבאים