אם רוצים להשתמש ב-HTTPS,
- מאגר התגים ימשיך להאזין בעוד
$PORT צריך לבחור איך מספקים אישורי TLS:
- שימוש באישורי TLS מנוהלים, שבהם אישורי TLS נוצרים באופן אוטומטי לפי הצורך, ומחודשים באופן אוטומטי. בדף הזה מתואר התכונה הזו, שזמינה בגרסאות הנתמכות של Google Kubernetes Engine.
- שימוש באישורים משלכם, שבהם אתם אחראים להשגת האישורים ולחידוש שלהם. במצבים מסוימים, שמתוארים בקטע מגבלות, צריך להשתמש באישורים משלכם.
אם אתם משתמשים באישורים מנוהלים, אתם צריכים גם למפות את הדומיין המותאם אישית כדי להשתמש בתכונה של אישורים מנוהלים.
שימוש ב-HTTPS וב-HTTP
כברירת מחדל, אם משתמשים באישורים מנוהלים, אשכולות או שירותי Knative עם אישורים מנוהלים חשופים לתנועת HTTP ו-HTTPS. אם רוצים להשתמש רק בתעבורת HTTPS, אפשר להפעיל הפניות אוטומטיות של HTTPS כדי לחייב את כל התעבורה להשתמש רק ב-HTTPS.
פתרון בעיות
אם נתקלתם בבעיות בשימוש באישורי TLS מנוהלים, תוכלו לעיין בדף פתרון בעיות ב-TLS מנוהל.
מגבלות
השימוש בתכונה 'אישורי TLS מנוהלים' כפוף לשיקולים הבאים:
- אישורי TLS מנוהלים מושבתים ולא נתמכים עבור אשכולות פרטיים של Knative serving ב- Google Cloud.
- כדי להשתמש בתכונה של אישורים מנוהלים, השירות שלכם צריך להיות חשוף חיצונית: הוא לא יכול להיות שירות מקומי של אשכול או שירות שחשוף דרך ענן וירטואלי פרטי.
- התכונה של אישורים מנוהלים פועלת רק עם Cloud Service Mesh. אין תמיכה בתוסף Istio או בהגדרות אחרות של Istio.
- התכונה הזו משתמשת ב-Let's Encrypt, שמוגדרת בה מכסת אישורים ראשונית של 50 אישורי TLS בשבוע לכל דומיין רשום. כדי לבקש להגדיל את המכסה, אפשר לעיין במסמכי Let's Encrypt.
- כשמריצים אשכול Knative serving בפלטפורמות אחרות, כמו on-prem או AWS, התכונה הזו מושבתת. כדי להשתמש בתכונה הזו, צריך לוודא שלקלאסטר יש גישה ל-Let's Encrypt, וששירות הכניסה (ingress) של Cloud Service Mesh חשוף לאינטרנט הציבורי.
לפני שמתחילים
ההוראות בדף הזה מבוססות על ההנחות הבאות:
- פרסתם את שירות Knative serving באשכול.
- יש לכם דומיין. אם אין לכם דומיין, אתם יכולים לקבל אותו מ-Google או מספק דומיינים אחר.
- יצרתם מיפוי דומיין לשירות ועדכנתם את רשומת ה-DNS בהתאם להוראות שבדף מיפוי הדומיינים.
- משתמשים ב-Cloud DNS או בשרת DNS לפי בחירתכם.
השבתה של אישורי TLS מנוהלים ו-HTTPS עבור אשכול שלם
כדי להשבית את ה-TLS המנוהל באשכול, מעדכנים את ה-ConfigMap config-domainmapping:
kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Disabled"}}'
השבתה של TLS ו-HTTPS מנוהלים למיפוי דומיין ספציפי
במקרה הצורך, אפשר להשבית את ה-TLS המנוהל למיפוי דומיין ספציפי:
מוסיפים את ההערה
domains.cloudrun.com/disableAutoTLS: "true"`:kubectl annotate domainmappings DOMAIN domains.cloudrun.com/disableAutoTLS=true
מוודאים ש-HTTPS לא פועל:
curl https://DOMAINמוודאים שנעשה שימוש ב-HTTP בשירות:
gcloud run domain-mappings describe --domain DOMAIN
מחליפים את DOMAIN בשם הדומיין שלכם, לדוגמה:
your-domain.comבודקים את השדה
url:בתוצאה של הפקודה שלמעלה: כתובת ה-URL צריכה להכילhttpולאhttps.
הפעלה מחדש של אישורי TLS מנוהלים ו-HTTPS
כדי להפעיל מחדש את TLS מנוהל:
אם עדיין לא עשיתם זאת, צריך ליצור מיפוי דומיין לשירות ולעדכן את רשומת ה-DNS בהתאם להוראות שבדף מיפוי הדומיינים.
כדי להפעיל אישורי TLS מנוהלים ו-HTTPS, מעדכנים את ConfigMap
config-domainmapping:kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Enabled"}}'
ממתינים כמה דקות אחרי שהפקודה מצליחה, ואז מוודאים שתכונת האישורים פועלת:
kubectl get kcert
אם האישור מוכן, אמורה להופיע הודעה דומה לזו:
NAME READY REASON your-domain.com True
יכול להיות שיעברו 20 שניות עד 2 דקות עד שה-
Kcertיהיה מוכן. נתקלתם בבעיות? כאן תוכלו לקרוא איך לפתור אותן.
אימות ההצלחה
כדי לוודא שרשומת ה-DNS נכנסה לתוקף, מריצים את הפקודה:
gcloud run domain-mappings describe --domain DOMAIN
מחליפים את DOMAIN בשם הדומיין שלכם, לדוגמה:
your-domain.comבודקים את השדה
url:בתוצאה של הפקודה שלמעלה: כתובת ה-URL צריכה להכילhttpsולאhttp.בודקים את כתובת ה-IP מהפקודה שלמעלה, שמופיעה בקטע
resourceRecords:rrdata, ומשווים אותה לערך שמופיע כשמריצים את הפקודהhost DOMAIN. הם צריכים להיות זהים.
הפעלת הפניות אוטומטיות ל-HTTPS בשירות Knative
אם משתמשים בתכונה של אישורי TLS מנוהלים, כברירת מחדל האשכול נחשף לתעבורת HTTP ו-HTTPS, מסיבות של תאימות לאחור. אם רוצים להפנות את כל התנועה לשימוש ב-HTTPS בלבד, אפשר להפעיל הפניות אוטומטיות ל-HTTPS עבור מיפוי דומיין קיים על ידי הפעלת הפקודה
kubectl annotate domainmappings DOMAIN domains.cloudrun.com/httpsRedirect=Enabled
כאשר DOMAIN הוא השם של מיפוי הדומיין.
נושאים קשורים
- פתרון בעיות ב-TLS מנוהל לפרטים על בדיקת מיפויי דומיינים, מכסות אישורים, סטטוס הזמנה ופסק זמן להזמנה, וכן כשלים בהרשאה.
- הוראות לשימוש באישורי TLS משלכם במקום באישורי TLS מנוהלים