הגדרת אישורי SSL ‏ (TLS)

אחרי שיוצרים שירות Media CDN (או שירותים), אפשר להנפיק אישורי SSL ‏ (TLS) ולצרף אותם כדי לתמוך בקישוריות מאובטחת בדפדפנים ובאפליקציות לנייד.

הנפקת אישור מנוהל

כדי ליצור אישור מנוהל ולצרף אותו לשירות Media CDN, צריך לבצע את הפעולות הבאות:

  1. כדי להוכיח בעלות ("הרשאה") על הדומיינים שרוצים להנפיק להם אישורים, צריך ליצור אסימון אתגר ולהוסיף רשומת DNS.
  2. יוצרים אישור מסוג EDGE_CACHE עם שם דומיין אחד או יותר על סמך ההרשאה הזו.
  3. מצרפים את האישור הזה לשירות Edge Cache אחד או יותר.

כדי לאשר, ליצור ולצרף אישורים לשירות Edge Cache, צריכות להיות לכם ההרשאות הבאות לניהול זהויות והרשאות גישה (IAM):

  • certificatemanager.certs.create
  • certificatemanager.certs.get
  • certificatemanager.certs.list
  • certificatemanager.certs.use
  • certificatemanager.dnsauthorizations.create
  • certificatemanager.dnsauthorizations.get
  • certificatemanager.dnsauthorizations.list
  • certificatemanager.dnsauthorizations.use

משתמשים שצריכים לצרף אישור קיים לשירות Media CDN צריכים את הרשאות ה-IAM‏ certificatemanager.certs.get,‏ certificatemanager.certs.list ו-certificatemanager.certs.use.

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

יצירת הרשאת DNS

קודם צריך ליצור הרשאת DNS כדי להוכיח בעלות על הדומיין, ורק אחר כך אפשר להנפיק לו אישורים. אימות ה-DNS מתבצע באמצעות אתגר DNS-01 ACME, ומאפשר להנפיק אישור לפני הפניית תנועה שגלוי למשתמשים לשירות Edge Cache.

מגדירים את הערך של domain לשם הדומיין שרוצים ליצור עבורו אישור, באופן הבא:

.

gcloud

משתמשים בפקודה gcloud certificate-manager dns-authorizations:

gcloud certificate-manager dns-authorizations create DOMAIN_NAME_AUTH \
    --domain="DOMAIN_NAME"
gcloud certificate-manager dns-authorizations describe DOMAIN_NAME_AUTH

ה-CLI של gcloud מחזיר תגובה עם הפרטים של רשומת ה-DNS שצריך להוסיף.

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

Terraform

resource "google_certificate_manager_dns_authorization" "default" {
  name        = "example-dns-auth"
  description = "example dns authorization "
  domain      = "test.example.com"
}

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

  • אפשר לחזור על השלב הזה לכל דומיין שרוצים להנפיק לו אישור.
  • אישורים יכולים לכלול כמה דומיינים, או שאפשר להנפיק אישור לכל דומיין, לפי הצורך. אחרי שיש לכם הרשאה לדומיין, אתם יכולים להשתמש בה כדי להנפיק אישורים.
  • מומלץ ליצור פחות אישורים בסך הכול, כשכל אחד מהם כולל את כל שמות הדומיין שמשמשים את השירות. כך משפרים את הביצועים של הלקוחות כשמשתמשים בכמה דומיינים, כי הלקוחות יכולים ליהנות מחידוש TLS בתדירות גבוהה יותר.
  • כל שירות Edge Cache יכול להפנות לעד חמישה אישורים. כדי לא לחרוג מהמגבלה הזו, צריך להנפיק פחות אישורים.

אם תצטרכו לאחזר את הערכים של רשומות ה-DNS במועד מאוחר יותר, תצטרכו לשלוח בקשה ל-authorizationName שסיפקתם כשנוצר אישור ה-DNS:

יצירת אישור

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

הרשימה של dnsAuthorizations צריכה להיות זהה לשמות של הרשאות קיימות שיצרתם בשלב מוקדם יותר בתהליך. אם רוצים להוסיף כמה דומיינים לאותו אישור, צריך לספק רשימה של domains[] ושל dnsAuthorizations[] תואמים כששולחים את הבקשה.

כדי ליצור אישור באמצעות הרשאה עבור test.example.com שנקראת test-example-com:

gcloud

משתמשים בפקודה gcloud certificate-manager certificates:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAME" \
    --dns-authorizations="DOMAIN_NAME_AUTH" \
    --scope=EDGE_CACHE

כך נוצר אישור עם כל הרשאת DNS במצב AUTHORIZING והאישור במצב PROVISIONING:

Create request issued for: [DOMAIN_NAME]
Waiting for operation [projects/my-project/locations/global/operations/operatio
n-1613425627385-5bb66ed644e91-3e2a2f1f-71979cf8] to complete...done.
Created certificate [CERTIFICATE_NAME].

Terraform

resource "google_certificate_manager_certificate" "default" {
  name        = "example-dns-cert"
  description = "example dns certificate"
  scope       = "EDGE_CACHE"
  managed {
    domains = [
      google_certificate_manager_dns_authorization.default.domain,
    ]
    dns_authorizations = [
      google_certificate_manager_dns_authorization.default.id,
    ]
  }
}

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

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

בשדה state מוצג הסטטוס הנוכחי של האישור:

  • הקצאת הרשאות – האישור עדיין נמצא בתהליך הקצאת הרשאות. הסיבה לכך היא כנראה שהבקשה ליצירת האישור נשלחה רק לאחרונה.
  • FAILED – מוחזר אחרי כמה ניסיונות לאמת את הדומיין או להנפיק את האישור. פרטים נוספים מופיעים בשדות provisioning_issue, authorization_attempt_info ו-failure_reason.
  • פעיל – הדומיין אומת בהצלחה והאישור הוקצה.

כדי לבדוק את הסטטוס של האישור:

gcloud

משתמשים בפקודה gcloud certificate-manager certificates:

gcloud certificate-manager certificates describe CERTIFICATE_NAME

בדוגמה הזו, ההרשאה של ה-DNS היא AUTHORIZED והסטטוס של האישור הוא ACTIVE:

createTime: '2021-02-07T20:03:39.867762684Z'
expireTime: '2021-03-09T19:20:41Z'
managed:
  authorizationAttemptInfo:
  - domain: DOMAIN_NAME
    state: AUTHORIZED
  dnsAuthorizations:
  - projects/111111111111/locations/global/dnsAuthorizations/test-example-com
  domains:
  - DOMAIN_NAME
  state: ACTIVE
name: projects/my-project/locations/global/certificates/test-example-com
scope: EDGE_CACHE
subjectAlternativeNames:
- DOMAIN_NAME
updateTime: '2021-02-07T20:03:40.297242738Z'

אחרי שהאישור ACTIVE, אפשר לצרף אותו לשירות Edge Cache.

צירוף אישור לשירות

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

כדי לצרף אישורים לשירות Edge Cache, צריכות להיות לכם ההרשאות הבאות ב-IAM:

  • certificatemanager.certs.get
  • certificatemanager.certs.list
  • certificatemanager.certs.use
  • networkservices.edgeCacheServices.get
  • networkservices.edgeCacheServices.list
  • networkservices.edgeCacheServices.update

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

gcloud

מריצים את הפקודה gcloud edge-cache services export כדי לייצא את קובץ ה-YAML של השירות:

gcloud edge-cache services export SERVICE_NAME \
    --destination=my-service.yaml

עורכים את קובץ ה-YAML שיוצא כדי להוסיף את האישור:

name: SERVICE_NAME
edgeSslCertificates:
- projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME

מריצים את הפקודה gcloud edge-cache services import:

gcloud edge-cache services import SERVICE_NAME \
    --source=my-service.yaml

פלט:

Request issued for: [SERVICE_NAME]
Updated service [SERVICE_NAME]

הפקודה מחזירה תיאור של השירות, כולל רשימת edgeSslCertificates שמצורפת עכשיו:

  name: SERVICE_NAME
  edgeSslCertificates:
  - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME

אחרי שמעדכנים את ההגדרה, האישור מועבר לכל מיקומי הקצה תוך דקות. כדי לבדוק שהאישור משויך לשירות Edge Cache לפני שמבצעים שינויים ב-DNS, אפשר לשלוח בקשה לכתובת IPv4 או IPv6 שמשויכת לשירות.

החלפה והסרה של אישורים

אפשר להוסיף אישורים ולהסיר אותם על ידי עדכון רשימת האישורים.

כשמשתמשים בדגל --edge-ssl-certificate של gcloud CLI, האישורים מצורפים רק לרשימת האישורים הקיימים, ולא מחליפים אותם. כך לא תסירו בטעות אישור פעיל ותקין.

כדי להסיר את אישור test-example-com מהשירות שלנו בדוגמה הבאה, אפשר לייצא את השירות ל-YAML באמצעות פקודות הייבוא והייצוא

  name: my-service
  edgeSslCertificates:
  - projects/PROJECT_ID/locations/global/certificates/test-example-com
  - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME

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

gcloud

משתמשים בפקודה gcloud edge-cache services:

gcloud edge-cache services export SERVICE_NAME --destination=my-service.yaml
Exported [projects/my-project/locations/global/edgeCacheServices/SERVICE_NAME] to 'my-service.yaml'.

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

  name: SERVICE_NAME
  edgeSslCertificates:
  - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME

שומרים את הקובץ ששיניתם, ואז מייבאים את השירות המעודכן:

gcloud

משתמשים בפקודה gcloud edge-cache services:

gcloud edge-cache services import SERVICE_NAME --source=my-service.yaml
Request issued for: [SERVICE_NAME]
Updated service [SERVICE_NAME].

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

אישורים בניהול עצמי

אתם יכולים להעלות אישורים משלכם ל-Media CDN אם יש לכם תרחישי שימוש ספציפיים שדורשים זאת.

כדי להעלות אישור ואת המפתח שמשויך אליו אל Certificate Manager:

gcloud

משתמשים בפקודה gcloud certificate-manager certificates. חשוב לוודא שציינתם --scope=EDGE_CACHE לאישורים שמשויכים ל-Media CDN.

gcloud certificate-manager certificates create stream-example-com \
    --certificate-file=CERT.pem \
    --private-key-file=PRIVATE_KEY.pem \
    --scope=EDGE_CACHE
Create request issued for: [stream-example-com]
Created certificate [stream-example-com].

אחרי העלאת האישור, אפשר לצרף אותו ל-EdgeCacheService כמו אישור מנוהל.

פתרון בעיות בהנפקת אישורים

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

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