אישורי CA בהתאמה אישית

ב-Dialogflow CX, נקודות קצה של webhook צריכות להיות מסוג HTTPS, ולהציג אישורי TLS תקפים כשהן מאומתות באמצעות מאגר האישורים שמוגדר כברירת מחדל ב-Google. עם זאת, יכול להיות שתרצו להשתמש באישור CA מותאם אישית, שלא יכול להיות חתום על ידי רשות אישורים שמוכרת על ידי מאגר ברירת המחדל של Google. לדוגמה, שרתי webhook שנמצאים ברשת ה-VPC הפרטית של Google סובלים מהבעיה הזו. במקרה כזה, אתם יכולים להעלות את האישורים המותאמים אישית ל-Dialogflow CX כשאתם יוצרים ווובוקים, והאישורים שהועלו יחליפו את מאגר האישורים המהימנים שמוגדר כברירת מחדל ב-Google.

אישורי CA בהתאמה אישית יכולים להיות אישורים בחתימה עצמית או אישורי בסיס בהתאמה אישית. אפשר להעלות כמה אישורים אם רוצים לבצע רוטציה של האישורים. האישורים צריכים להיות בפורמט DER, והם צריכים להיות חתומים עם שם חלופי של נושא שתואם לכתובת ה-URL של ה-Webhook. אם התוסף keyUsage קיים, הערך שלו צריך להיות digitalSignature.

הדגמה של שרת בחתימה עצמית

זוהי ההגדרה של שרת הדגמה:

  1. הכנת קבצים של אישורים בחתימה עצמית. הדומיין לדוגמה שבו אנחנו משתמשים הוא www.example.com.
    openssl genrsa -out server.key 2048
    openssl req -nodes -new -sha256 -newkey rsa:2048 -key server.key -subj "/CN=www.example.com" -out server.csr
    openssl x509 -req -days 3650 -sha256 -in server.csr -signkey server.key -out server.crt -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")
    openssl x509 -in server.crt -out server.der -outform DER
  2. מפעילים את שרת ה-HTTPS באמצעות אישור השרת (server.crt) והמפתח הפרטי (server.key) שנוצרו בשלב הקודם. אנחנו מניחים שהשרת מאזין ביציאה 443.
  3. בודקים את החיבור לשרת באופן מקומי.
    curl --cacert server.crt https://www.example.com --resolve www.example.com:443:127.0.0.1

הדגמה של webhook עם אישור מותאם אישית

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

  • מגדירים את כתובת ה-URL שתואמת לדומיין שחתום על האישור (https://www.example.com בהדגמה הקודמת). באחריותכם לוודא שהדומיין יפנה בצורה נכונה לכתובת ה-IP של השרת.
  • מעלים את האישור המותאם אישית בפורמט DER. זהו קובץ server.der מהדגמה הקודמת של חתימה עצמית או אישור הבסיס בהתאמה אישית.
  • במקרה של ווּבְּהוּקים שמשולבים עם גישה לרשת פרטית של Service Directory, צריך להגדיר את נקודת הקצה של Service Directory עם כתובת ה-IP והיציאה של השרת, ולספק את השירות של Service Directory כשיוצרים את הווּבְּהוּק.