פריסת אישור גלובלי שמנוהל על ידי Google עם הרשאת DNS

במדריך הזה נסביר איך משתמשים ב-Certificate Manager כדי לפרוס אישור גלובלי בניהול Google עם הרשאת DNS.

מאזני העומסים הגלובליים הבאים תומכים באישורים בניהול Google עם הרשאת DNS:

  • מאזן עומסים גלובלי חיצוני של אפליקציות (ALB)
  • מאזן עומסים קלאסי של אפליקציות (ALB)
  • מאזן עומסי רשת גלובלי חיצוני בשרת proxy
  • מאזן עומסי רשת קלאסי בשרת proxy

אם אתם רוצים לפרוס למאזני עומסים בכמה אזורים או למאזני עומסים אזוריים, קראו את המאמרים הבאים:

מטרות

במדריך הזה מוסבר איך לבצע את הפעולות הבאות:

  • יצירת אישור בניהול Google שהונפק על ידי רשות אישורים מהימנה באופן ציבורי עם הרשאת DNS באמצעות Certificate Manager.
  • פורסים את האישור במאזן עומסים נתמך באמצעות שרת proxy ל-HTTPS.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine, Certificate Manager APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. יוצרים תחום DNS ציבורי

התפקידים הנדרשים

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

  • בעלים של Certificate Manager ‏ (roles/certificatemanager.owner)

    נדרש כדי ליצור ולנהל משאבים של Certificate Manager.

  • אדמין של מאזן עומסים ב-Compute‏ (roles/compute.loadBalancerAdmin) או אדמין של רשת Compute‏ (roles/compute.networkAdmin)

    נדרשת כדי ליצור ולנהל שרת proxy לחלוקת העומס מסוג HTTPS.

  • אדמין DNS‏ (roles/dns.admin)

    נדרש אם רוצים להשתמש ב-Cloud DNS כפתרון ה-DNS.

למידע נוסף, קראו את המאמרים הבאים:

שמות דומיין

כדי ליצור אישורים, צריך לקבל את שמות הדומיינים שמוגדרים במלואם (FQDN) של הדומיינים שבבעלותכם. אם אין לכם דומיין, אתם יכולים להשתמש ב-Cloud Domains כדי לרשום דומיין.

יצירת מאזן העומסים

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

אם עדיין לא יצרתם מאזן עומסים, תוכלו להיעזר בדפים הבאים כדי ליצור אחד:

יצירת אישור בניהול Google עם הרשאת DNS

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

יצירת הרשאת DNS

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

אם אתם יוצרים הרשאת DNS לתעודת wildcard, כמו *.myorg.example.com, הגדירו את הרשאת ה-DNS לדומיין ההורה, לדוגמה myorg.example.com.

המסוף

כשיוצרים אישור, אפשר ליצור הרשאת DNS או לצרף הרשאת DNS קיימת. מידע נוסף זמין במאמר יצירת אישור בניהול Google שמפנה להרשאת DNS.

gcloud

אפשר ליצור שני סוגים של הרשאות DNS: ‏FIXED_RECORD או PER_PROJECT_RECORD. מידע נוסף זמין במאמר הרשאת DNS.

הרשאת DNS מסוג FIXED_RECORD

כדי ליצור הרשאת DNS ב-FIXED_RECORD, משתמשים בפקודה gcloud certificate-manager dns-authorizations create הבאה:

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    --type=[FIXED_RECORD]

מחליפים את מה שכתוב בשדות הבאים:

  • ‫AUTHORIZATION_NAME: השם של הרשאת ה-DNS.
  • ‫DOMAIN_NAME: השם של דומיין היעד שעבורו יוצרים את הרשאת ה-DNS הזו. שם הדומיין חייב להיות שם דומיין שמוגדר במלואו, כמו myorg.example.com.

אחרי שיוצרים את הרשאת ה-DNS של FIXED_RECORD, מאמתים אותה באמצעות הפקודה gcloud certificate-manager dns-authorizations describe:

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

הפלט אמור להיראות כך: בפלט, מאתרים את הקטע dnsResourceRecord. מאתרים את הרשומה CNAME ומוסיפים את פרטי הרשומה (data,‏ name ו-type) להגדרות ה-DNS.

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

הרשאת DNS מסוג PER_PROJECT_RECORD

כדי ליצור הרשאת DNS מסוג PER_PROJECT_RECORD, משתמשים בפקודה gcloud certificate-manager dns-authorizations create הבאה:

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    --type=PER_PROJECT_RECORD

מחליפים את מה שכתוב בשדות הבאים:

  • ‫AUTHORIZATION_NAME: השם של הרשאת ה-DNS.
  • ‫DOMAIN_NAME: השם של דומיין היעד שעבורו יוצרים את הרשאת ה-DNS הזו. שם הדומיין חייב להיות שם דומיין שמוגדר במלואו, כמו myorg.example.com.

אחרי שיוצרים את הרשאת ה-DNS של PER_PROJECT_RECORD, מאמתים אותה באמצעות הפקודה gcloud certificate-manager dns-authorizations describe:

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

הפלט אמור להיראות כך: בפלט, מאתרים את הקטע dnsResourceRecord. מאתרים את הרשומה CNAME ומוסיפים את פרטי הרשומה (data,‏ name ו-type) להגדרות ה-DNS.

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

Terraform

כדי ליצור הרשאת DNS, אפשר להשתמש במשאב google_certificate_manager_dns_authorization.

resource "google_certificate_manager_dns_authorization" "default" {
  name        = "${local.name}-dnsauth-${random_id.tf_prefix.hex}"
  description = "The default dns auth"
  domain      = local.domain
  labels = {
    "terraform" : true
  }
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

API

כדי ליצור הרשאת DNS, שולחים בקשת POST ל-method‏ dnsAuthorizations.create:

POST /v1/projects/PROJECT_ID/locations/global/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME
{
  "domain": "DOMAIN_NAME",
  "type": "PER_PROJECT_RECORD" //optional
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫AUTHORIZATION_NAME: השם של הרשאת ה-DNS.
  • ‫DOMAIN_NAME: השם של דומיין היעד שעבורו יוצרים את הרשאת ה-DNS הזו. שם הדומיין חייב להיות שם דומיין שמוגדר במלואו, כמו myorg.example.com.

יצירת אישור בניהול Google שמפנה להרשאת ה-DNS

כדי ליצור אישור בניהול Google שמפנה להרשאת ה-DNS שיצרתם בשלבים הקודמים:

המסוף

  1. נכנסים לדף Certificate Manager במסוף Google Cloud .

    כניסה ל-Certificate Manager

  2. בכרטיסייה אישורים, לוחצים על הוספת אישור.

  3. בשדה שם האישור, מזינים שם ייחודי לאישור.

  4. אופציונלי: בשדה תיאור, מזינים תיאור לאישור. התיאור מאפשר לכם לזהות את האישור.

  5. בקטע Location, בוחרים באפשרות Global.

  6. בשדה היקף, בוחרים באפשרות ברירת מחדל.

  7. בשביל Certificate type, בוחרים Create Google-managed certificate.

  8. בשדה Certificate Authority type, בוחרים באפשרות Public.

  9. בשדה Domain Names, מציינים רשימה מופרדת בפסיקים של שמות הדומיינים של האישור. כל שם דומיין חייב להיות שם דומיין שמוגדר במלואו, כמו myorg.example.com. שם הדומיין יכול להיות גם שם דומיין עם תו כללי לחיפוש, כמו *.example.com.

  10. בשדה Authorization type, בוחרים באפשרות DNS authorization.

    בדף מופיעות הרשאות ה-DNS של שמות הדומיינים. אם לשם דומיין אין הרשאת DNS משויכת, פועלים לפי השלבים הבאים כדי ליצור הרשאה:

    1. לוחצים על Create missing DNS authorization.
    2. בשדה DNS authorization name, מציינים את השם של הרשאת ה-DNS. סוג הרשאת ה-DNS שמוגדר כברירת מחדל הוא FIXED_RECORD. כדי לנהל אישורים באופן עצמאי בכמה פרויקטים, מסמנים את התיבה Per project authorization.
    3. לוחצים על Create DNS authorization.
  11. בשדה Labels, מציינים את התוויות שרוצים לשייך לאישור. כדי להוסיף תווית, לוחצים על Add label ומציינים מפתח וערך בשביל התווית.

  12. לוחצים על יצירה.

    האישור החדש מופיע ברשימת האישורים.

gcloud

כדי ליצור אישור גלובלי בניהול Google עם הרשאת DNS, מריצים את הפקודה certificate-manager certificates create עם הדגל dns-authorizations:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAME,*.DOMAIN_NAME" \
    --dns-authorizations="AUTHORIZATION_NAMES"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫CERTIFICATE_NAME: שם האישור.
  • ‫DOMAIN_NAME: שם דומיין היעד. שם הדומיין חייב להיות שם דומיין שמוגדר במלואו, כמו myorg.example.com, או דומיין עם תו כללי לחיפוש, כמו *.myorg.example.com. הקידומת של כוכבית ונקודה (*.) מציינת תעודת wildcard.
  • ‫AUTHORIZATION_NAMES: רשימה מופרדת בפסיקים של שמות הרשאות ה-DNS שיצרתם לאישור.

Terraform

להשתמש במשאב של google_certificate_manager_certificate.

resource "google_certificate_manager_certificate" "root_cert" {
  name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
  description = "The wildcard cert"
  managed {
    domains = [local.domain, "*.${local.domain}"]
    dns_authorizations = [
      google_certificate_manager_dns_authorization.default.id
    ]
  }
  labels = {
    "terraform" : true
  }
}

API

כדי ליצור את האישור, שולחים בקשת POST ל-method‏ certificates.create באופן הבא:

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
 "managed": {
  "domains": ["DOMAIN_NAME"],
  "dnsAuthorizations": [
   "projects/PROJECT_ID/locations/global/dnsAuthorizations/AUTHORIZATION_NAME",
  ],
 }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫CERTIFICATE_NAME: שם האישור.
  • ‫DOMAIN_NAME: שם דומיין היעד. שם הדומיין חייב להיות שם דומיין שמוגדר במלואו, כמו myorg.example.com, או דומיין עם תו כללי לחיפוש, כמו *.myorg.example.com. הקידומת של כוכבית ונקודה (*.) מציינת תעודת wildcard.
  • ‫AUTHORIZATION_NAMES: רשימה מופרדת בפסיקים של שמות הרשאות ה-DNS.

הוספת רשומת CNAME להגדרות ה-DNS

אם אתם משתמשים בפתרון DNS של צד שלישי כדי לנהל את ה-DNS, עיינו במסמכי התיעוד שלו כדי להוסיף את רשומת ה-CNAME להגדרות ה-DNS. אם אתם משתמשים ב-Google Cloud כדי לנהל את ה-DNS, בצעו את השלבים שבקטע הזה.

המסוף

כדי ליצור קבוצת רשומות:

  1. במסוף Google Cloud , נכנסים לדף תחומי DNS.

    כניסה לדף Cloud DNS zones

  2. לוחצים על השם של תחום ה-DNS שבו רוצים להוסיף את הרשומה.

  3. בדף Zone details, לוחצים על Add standard.

  4. בדף Create record set, בשדה DNS name, מזינים את תת-הדומיין של תחום ה-DNS.

    כשמזינים את שם תת-הדומיין, חשוב לוודא ששם תת-הדומיין, כולל הטקסט האפור שמוצג בשדה DNS name, תואם לערך המלא של השדה dnsResourceRecord.name כפי שמוצג בפלט של הפקודה gcloud certificate-manager dns-authorizations describe.

    לדוגמה:

    • אם הערך בשדה dnsResourceRecord.name הוא _acme-challenge.myorg.example.com., והטקסט האפור בשדה DNS name הוא .example.com., מזינים _acme-challenge.myorg.

    • אם הערך בשדה dnsResourceRecord.name הוא _acme-challenge.myorg.example.com. , והטקסט האפור בשדה DNS name הוא .myorg.example.com., מזינים _acme-challenge.

    • אם הערך בשדה dnsResourceRecord.name הוא _acme-challenge_ujmmovf2vn55tgye.myorg.example.com., והטקסט האפור בשדה DNS name הוא .myorg.example.com., מזינים _acme-challenge_ujmmovf2vn55tgye.

  5. בשדה סוג רשומת המשאב, בוחרים באפשרות CNAME.

  6. בשדה TTL, מזינים ערך מספרי חיובי של משך החיים של רשומת המשאב, שהוא משך הזמן שבו אפשר לשמור אותה במטמון.

  7. ברשימה TTL unit, בוחרים את יחידת הזמן, לדוגמה 30 minutes.

  8. בשדה Canonical name, מזינים את הערך המלא של השדה dnsResourceRecord.data כפי שהוא מוצג בפלט של הפקודה gcloud certificate-manager dns-authorizations describe.

  9. כדי להזין פרטים נוספים, לוחצים על הוספת פריט.

  10. לוחצים על יצירה.

gcloud

כשיוצרים הרשאת DNS, הפקודה של ה-CLI של gcloud מחזירה את רשומת ה-CNAME התואמת. כדי להוסיף את רשומת ה-CNAME להגדרות ה-DNS בתחום ה-DNS של דומיין היעד, פועלים לפי השלבים הבאים:

  1. מתחילים את הטרנזקציה של רשומת ה-DNS:

    gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
    

    מחליפים את DNS_ZONE_NAME בשם של אזור היעד ב-DNS.

  2. מוסיפים את רשומת ה-CNAME לתחום ה-DNS של היעד:

    gcloud dns record-sets transaction add CNAME_RECORD \
        --name="VALIDATION_SUBDOMAIN_NAME.DOMAIN_NAME." \
        --ttl="30" \
        --type="CNAME" \
        --zone="DNS_ZONE_NAME"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CNAME_RECORD: ערך הנתונים המלא של רשומת ה-CNAME שהוחזרה על ידי הפקודה של Google Cloud CLI שיצרה את הרשאת ה-DNS התואמת.
    • ‫VALIDATION_SUBDOMAIN_NAME: תת-הדומיין של הקידומת של תחום ה-DNS, למשל _acme-challenge. אפשר להעתיק את השם מיומן הפקודות של gcloud certificate-manager dns-authorizations describe, כמו שמתואר בקטע יצירת הרשאת DNS.
    • ‫DOMAIN_NAME: השם של דומיין היעד.שם הדומיין חייב להיות שם דומיין שמוגדר במלואו, כמו myorg.example.com. צריך גם לכלול את הנקודה בסוף אחרי שם הדומיין של היעד.
    • ‫DNS_ZONE_NAME: השם של תחום ה-DNS לחיפוש הפוך.

    למידע נוסף על ההבדל בין הרשאות DNS מסוג FIXED_RECORD ו-PER_PROJECT_RECORD, עיינו בדוגמאות הבאות. ההבדל היחיד בין שתי הדוגמאות הוא הערך של הדגל --name.

    הרשאת DNS מסוג FIXED_RECORD

    gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \
        --name="_acme-challenge.myorg.example.com." \
        --ttl="30" \
        --type="CNAME" \
        --zone="myorg-example-com"
    

    הרשאת DNS מסוג PER_PROJECT_RECORD

    gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \
        --name="_acme-challenge_ujmmovf2vn55tgye.myorg.example.com." \
        --ttl="30" \
        --type="CNAME" \
        --zone="myorg-example-com"
    
  3. מריצים את הטרנזקציה של רשומת ה-DNS כדי לשמור את השינויים:

    gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
    

    מחליפים את DNS_ZONE_NAME בשם של אזור היעד ב-DNS.

Terraform

כדי להוסיף את רשומת ה-CNAME להגדרות ה-DNS, אתם יכולים להשתמש במשאב של google_dns_record_set.

resource "google_dns_record_set" "cname" {
  name         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].name
  managed_zone = google_dns_managed_zone.default.name
  type         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].type
  ttl          = 300
  rrdatas      = [google_certificate_manager_dns_authorization.default.dns_resource_record[0].data]
}

אימות סטטוס האישור

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

המסוף

  1. נכנסים לדף Certificate Manager במסוף Google Cloud .

    כניסה ל-Certificate Manager

  2. בכרטיסייה אישורים, בודקים את העמודה סטטוס של האישור.

gcloud

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

gcloud certificate-manager certificates describe CERTIFICATE_NAME

מחליפים את CERTIFICATE_NAME בשם של האישור המנוהל על ידי Google.

הפלט אמור להיראות כך:

createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
  authorizationAttemptInfo:
  - domain: myorg.example.com
    state: AUTHORIZED
  dnsAuthorizations:
    - projects/myProject/locations/global/dnsAuthorizations/myCert
  domains:
  - myorg.example.com
  state: ACTIVE
name: projects/myProject/locations/global/certificates/myCert
pemCertificate: |
  -----BEGIN CERTIFICATE-----
  [...]
  -----END CERTIFICATE-----
sanDnsnames:
  -   myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

אם מצב האישור הוא לא ACTIVE אחרי כמה שעות, צריך לבדוק שהוספתם את הרשומה CNAME להגדרות ה-DNS בצורה נכונה.

לשלבים נוספים לפתרון בעיות, ראו פתרון בעיות ב-Certificate Manager.

פריסת האישור למאזן עומסים

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

יצירת מפת אישורים

יוצרים מפת אישורים שמפנה לרשומת מיפוי לאישורים שמשויכת לאישור:

gcloud

כדי ליצור מפת אישורים, משתמשים בפקודה gcloud certificate-manager maps create:

gcloud certificate-manager maps create CERTIFICATE_MAP_NAME

מחליפים את CERTIFICATE_MAP_NAME בשם של מפת האישורים הרלוונטית.

Terraform

כדי ליצור מפת אישורים, אפשר להשתמש במשאב google_certificate_manager_certificate_map.

resource "google_certificate_manager_certificate_map" "certificate_map" {
  name        = "${local.name}-certmap-${random_id.tf_prefix.hex}"
  description = "${local.domain} certificate map"
  labels = {
    "terraform" : true
  }
}

יצירת רשומת מיפוי לאישורים

יוצרים רשומת מיפוי לאישורים ומשייכים אותה לאישור ולמפת האישורים:

gcloud

כדי ליצור רשומת מיפוי לאישורים, משתמשים בפקודה gcloud certificate-manager maps entries create:

gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME" \
    --certificates="CERTIFICATE_NAME" \
    --hostname="HOSTNAME"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫CERTIFICATE_MAP_ENTRY_NAME: השם של רשומת המיפוי לאישורים.
  • ‫CERTIFICATE_MAP_NAME: השם של מפת האישורים שאליה משויכת רשומת המיפוי לאישורים.
  • ‫CERTIFICATE_NAME: שם האישור שרוצים לשייך לרשומת המיפוי לאישורים.
  • ‫HOSTNAME: שם המארח שרוצים לשייך לרשומת המיפוי לאישורים.

    אם רוצים ליצור אישור שכולל גם דומיין עם תו כללי לחיפוש וגם דומיין בסיסי (root), צריך לציין את שם המארח עם דומיין בסיסי ועם תו כללי לחיפוש, למשל example.com ו-*.example.com. בנוסף, צריך לציין שתי רשומות מיפוי לאישורים – אחת ל-example.com והשנייה ל-*.example.com.

Terraform

כדי ליצור רשומת מיפוי לאישורים עם דומיין בסיסי (root), משתמשים במשאב google_certificate_manager_certificate_map_entry.

resource "google_certificate_manager_certificate_map_entry" "first_entry" {
  name        = "${local.name}-first-entry-${random_id.tf_prefix.hex}"
  description = "example certificate map entry"
  map         = google_certificate_manager_certificate_map.certificate_map.name
  labels = {
    "terraform" : true
  }
  certificates = [google_certificate_manager_certificate.root_cert.id]
  hostname     = local.domain
}

כדי ליצור רשומת מיפוי לאישורים עם דומיין עם תו כללי לחיפוש, משתמשים במשאב google_certificate_manager_certificate_map_entry.

resource "google_certificate_manager_certificate_map_entry" "second_entry" {
  name        = "${local.name}-second-entity-${random_id.tf_prefix.hex}"
  description = "example certificate map entry"
  map         = google_certificate_manager_certificate_map.certificate_map.name
  labels = {
    "terraform" : true
  }
  certificates = [google_certificate_manager_certificate.root_cert.id]
  hostname     = "*.${local.domain}"
}

איך מוודאים שרשומת מיפוי לאישורים פעילה

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

כדי לאמת את רשומת המיפוי לאישורים, משתמשים בפקודה gcloud certificate-manager maps entries describe:

gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫CERTIFICATE_MAP_ENTRY_NAME: השם של רשומת המיפוי לאישורים.
  • ‫CERTIFICATE_NAME: שם האישור שרוצים לשייך לרשומת המיפוי לאישורים.

הפלט אמור להיראות כך:

certificates:
createTime: '2021-09-06T10:01:56.229472109Z'
hostname: example.com
name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry
state: ACTIVE
updateTime: '2021-09-06T10:01:58.277031787Z'

צירוף מפת האישורים לשרת proxy לחלוקת העומס

אפשר לצרף את מפת האישורים לשרת proxy חדש או קיים לחלוקת העומס.

המסוף

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

  1. במסוף Google Cloud , עוברים לדף איזון עומסים.

    כניסה לדף Load balancing

  2. לוחצים על השם של מאזן העומסים שרוצים לעדכן ואז על Edit.

  3. לוחצים על Frontend configuration ובוחרים את כתובת ה-IP של ממשק הקצה ואת הגדרת היציאה שרוצים לערוך.

  4. אם מופיעה האפשרות Choose certificate repository, בוחרים באפשרות Use certificate map.

  5. ברשימה Select a certificate map, בוחרים את מפת האישורים.

  6. לוחצים על Done ואז על Update.

gcloud

כדי לצרף את מפת האישורים לשרת proxy חדש לחלוקת העומס, משתמשים בפקודה gcloud compute target-https-proxies create:

gcloud compute target-https-proxies create PROXY_NAME \
    --certificate-map="CERTIFICATE_MAP_NAME" \
    --url-map="URL_MAP" \
    --global

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROXY_NAME: שם שרת ה-proxy לחלוקת העומס.
  • ‫CERTIFICATE_MAP_NAME: השם של מפת האישורים שמפנה לרשומת המיפוי לאישורים ולאישור המשויך.
  • ‫URL_MAP: השם של מפת URL

כדי לצרף את מפת האישורים לשרת proxy קיים של יעד HTTPS, משתמשים בפקודה gcloud compute target-https-proxies update. אם אתם לא יודעים את השם של שרת ה-proxy הקיים לחלוקת העומס, היכנסו לדף Target proxies ושימו לב לשם של שרת ה-proxy לחלוקת העומס.

gcloud compute target-https-proxies update PROXY_NAME \
    --certificate-map="CERTIFICATE_MAP_NAME" \
    --global

אחרי שיוצרים או מעדכנים את שרת proxy לחלוקת העומס, מריצים את הפקודה הבאה כדי לאמת אותו:

gcloud compute target-https-proxies list

Terraform

כדי לצרף את מפת האישורים לשרת ה-Proxy לחלוקת העומס, אפשר להשתמש במשאב google_compute_target_https_proxy.

כשמגדירים שרת proxy לחלוקת העומס, אם מצרפים אישורי TLS‏ (SSL) ישירות וגם דרך מפת אישורים, שרת ה-proxy משתמש באישורים שמפת האישורים מפנה אליהם ומתעלם מאישורי ה-TLS‏ (SSL) שצורפו ישירות.

הסרת המשאבים

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

  1. מוחקים את מאזן העומסים והמשאבים שלו.

    ניקוי הגדרה של איזון עומסים

  2. מוחקים את מפת האישורים או מנתקים אותה מה-proxy.

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

    gcloud compute target-https-proxies delete PROXY_NAME
    

    אם רוצים להשאיר את שרת ה-proxy ל-HTTPS, צריך לנתק את מפת האישורים משרת ה-proxy.

    • אם יש אישורי TLS ‏ (SSL) שמצורפים ישירות לשרת ה-proxy, ניתוק מפת האישורים יגרום לשרת ה-proxy להמשיך להשתמש באישורי ה-TLS ‏ (SSL) שמצורפים ישירות.
    • אם אין אישורי TLS‏ (SSL) שמצורפים ישירות לשרת ה-proxy, אי אפשר לנתק את מפת האישורים משרת ה-proxy. כדי לנתק את מפת האישורים, קודם צריך לצרף לפחות אישור TLS (SSL) אחד ישירות לשרת ה-proxy.

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

    gcloud compute target-https-proxies update PROXY_NAME \
        --clear-certificate-map
    

    מחליפים את PROXY_NAME בשם של שרת ה-Proxy לטירגוט.

  3. מוחקים את רשומת המיפוי לאישורים ממפת האישורים:

    gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \
        --map="CERTIFICATE_MAP_NAME"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CERTIFICATE_MAP_ENTRY_NAME: השם של רשומת המיפוי לאישורים.
    • ‫CERTIFICATE_MAP_NAME: שם מפת האישורים.
  4. מוחקים את מפת האישורים:

    gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
    

    מחליפים את CERTIFICATE_MAP_NAME בשם של מפת האישורים.

  5. מוחקים את האישור שמנוהל על ידי Google:

    המסוף

    1. נכנסים לדף Certificate Manager במסוף Google Cloud .

      כניסה ל-Certificate Manager

    2. בכרטיסייה Certificates, מסמנים את התיבה של האישור.

    3. לוחצים על Delete.

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

    gcloud

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    מחליפים את CERTIFICATE_NAME בשם של אישור היעד.

  6. מוחקים את הרשאת ה-DNS:

    gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME
    

    מחליפים את AUTHORIZATION_NAME בשם של הרשאת ה-DNS.

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