הצגת תוכן מאובטח ולא מאובטח באותו שם מארח

בדרך כלל, כשמשתמשים ב-Cloud CDN, מעבירים תוכן HTTP ו-HTTPS דרך אותו שם מארח. הרבה דפדפנים אוכפים את השימוש ב-Transport Layer Security ‏ (TLS) ולא מאפשרים מסירת תוכן לא מאובטח, אבל עדיין יש תרחישי שימוש שבהם צריך לאפשר מסירה לא מאובטחת ומסירה מאובטחת באותו שם מארח. במאמר הזה נסביר איך אפשר להשיג את הפונקציונליות הזו באמצעות Cloud CDN.

אתגר

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

  1. הפניה לשם דומיין ששייך ל-CDN, באמצעות רשומת CNAME של DNS.
  2. ניתוב תעבורה לקבוצת משנה של שרתים שתומכים במשא ומתן של TLS עבור שם הדומיין הזה.

מכיוון ש-Cloud CDN משתלב עם Cloud Load Balancing, הגישה של Cloud CDN שונה מהגישה של רשתות CDN רגילות. ‫Cloud CDN ממנף את כתובת ה-IP מסוג Anycast של מאזן העומסים של אפליקציות החיצוני. כשמגדירים את Cloud CDN, יש כתובת IP ספציפית שאליה מכוונים את התנועה. לשם כך צריך ליצור רשומת A (ל-IPv4) או רשומת AAAA (ל-IPv6) ברשומת ה-DNS, ולא רשומת CNAME עם ערך של שם מארח.

כברירת מחדל, כשמגדירים את הקצה הקדמי של מאזן העומסים, מערכתGoogle Cloud מקצה באופן דינמי כתובת IP זמנית. מכיוון שצריך להגדיר את ההגדרות של HTTP ו-HTTPS בנפרד, יכול להיות שיהיו לכם שתי כתובות IP למופע Cloud CDN. מכיוון שכתובת ה-IP של רשומת A או רשומת AAAA זהה גם ל-HTTP וגם ל-HTTPS, אי אפשר לטפל במקרה הזה בצורה נכונה ב-DNS.

פתרון

כשמספקים תוכן מאובטח ולא מאובטח באותו שם מארח, הלקוח מופנה לשרת קצה שיכול לנהל משא ומתן על HTTP או על HTTPS. כדי שזה יעבוד עם Cloud CDN, אפשר לשריין כתובת IP ולקשר את כתובת ה-IP המשוריינת להגדרות של חזית האתר ב-HTTP וב-HTTPS במאזן העומסים החיצוני של האפליקציות.

פרוטוקולי HTTP ו-HTTPS באותו דומיין
HTTP and HTTPS over the same domain

בתרשים:

  • בקשות נכנסות ל-www.example.com מגיעות מלקוחות שמשתמשים ב-HTTP/2, ב-HTTPS וב-HTTP.
  • שתי כתובות IP שמורות, אחת ל-IPv4 ואחת ל-IPv6:

    • 34.95.111.204
    • [2600:1901:0:b13e::]
  • שתי כתובות ה-IP האלה משויכות ל-www.example.com ב-Cloud DNS.

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

    שם פרוטוקול IP:Port
    ipv4-http HTTP 34.95.111.204:80
    ipv4-https HTTPS 34.95.111.204:443
    ipv6-http HTTP [2600:1901:0:b13e::]:80
    ipv6-https HTTPS [2600:1901:0:b13e::]:443
  • במקרה של אי מציאה במטמון של Cloud CDN, מאזן העומסים מפזר את הבקשות למקורות הקצה העורפי, על סמך ההגדרות שמוגדרות במפת URL של מאזן העומסים.

שלב 1: שמירת כתובת IP חיצונית גלובלית

יוצרים כתובת IPv4 או כתובת IPv6 (או את שתיהן). כדי לתמוך בכתובות IPv4 ו-IPv6, צריך ליצור כתובת IPv4 אחת וכתובת IPv6 אחת.

ברשומת ה-DNS,יוצרים רשומת A (או AAAA) כדי להפנות את התנועה לכתובת ה-IP השמורה הזו.

המסוף