יצירת רשות אישורים משנית מרשות אישורים חיצונית
בדף הזה מוסבר איך ליצור רשות אישורים (CA) משנית שמקושרת לרשות אישורים חיצונית בסיסית.
אם יש לכם היררכיה קיימת של תשתית מפתח ציבורי (PKI) שמכילה רשות אישורים (CA) ברמה הבסיסית ורשויות אישורים (CA) משניות, אתם יכולים לשמור על אותה רשות אישורים (CA) ברמה הבסיסית וליצור רשות אישורים (CA) משנית בשירות CA שמקושרת לרשות האישורים (CA) החיצונית ברמה הבסיסית. המפתח והפעולות של רשות האישורים (CA) החיצונית ברמה הבסיסית נשארים מחוץ ל- Google Cloud. אפשר להשתמש רק ב-CA הבסיסי החיצוני כדי להנפיק את אישור ה-CA המשני ל-Google Cloud. כל עומס עבודה שסומך על רשות האישורים הבסיסית החיצונית סומך באופן מיידי על רשות האישורים המשנית. לאחר מכן תוכלו להשתמש ברשות האישורים המשנית כדי להנפיק אישורים בלי שתצטרכו לחזור לרשות האישורים החיצונית ברמה הבסיסית בזמן הריצה.
לפני שמתחילים
- מוודאים שיש לכם את תפקיד ה-IAM CA Service Operation Manager (
roles/privateca.caManager) או CA Service Admin (roles/privateca.admin). למידע נוסף, ראו הגדרת מדיניות IAM. - מזהים את רשות האישורים (CA) החיצונית הבסיסית.
- מגדירים את השם, הנושא, תקופת התוקף וגודל המפתח של רשות האישורים המשנית. מידע נוסף מופיע במאמר בנושא קביעת הגדרות של רשות אישורים.
יצירת רשות אישורים משנית מרשות אישורים חיצונית
כדי ליצור רשות אישורים משנית מרשות אישורים חיצונית, צריך לבצע את השלבים הבאים:
יוצרים בקשת חתימה על אישור (CSR) של רשות אישורים משנית: השלב הראשון הוא ליצור CSR עבור רשות האישורים המשנית ואז להוריד את ה-CSR.
מקבלים את אישור ה-CA המשני שחתום על ידי ה-CA החיצוני ברמה הבסיסית: השלב השני הוא לשלוח את ה-CSR ל-CA החיצוני ברמה הבסיסית לחתימה. חשוב לפעול לפי ההוראות הספציפיות של רשות האישורים החיצונית כדי לשלוח בקשות CSR ולקבל אישורים חתומים.
ייבוא האישור החתום של רשות אישורים משנית אל CA Service: השלב האחרון הוא להעלות את שרשרת אישורי ה-PEM החתומים באמצעות Google Cloud CLI או Google Cloud המסוף.
בקטע הבא מוסבר איך ליצור רשות אישורים משנית מרשות אישורים חיצונית בסיסית.
יצירת CSR
המסוף
במסוף Google Cloud , עוברים לדף Certificate Authority Service.
לוחצים על הכרטיסייה מנהל רשויות אישורים.
לוחצים על יצירת רשות אישורים.
בחירת סוג ה-CA:
- לוחצים על Subordinate CA (רשות אישורים משנית).
- בשדה תוקף, מזינים את משך הזמן שבו האישורים שהונפקו על ידי רשות האישורים המשנית יהיו תקפים.
- לוחצים על Root CA is external (רשות האישורים העליונה היא חיצונית).
- בוחרים אחת מהאפשרויות הזמינות עבור רמת הרשאות הגישה. מידע נוסף זמין במאמר בנושא בחירת רמות הפעולה.
- בקטע Regionalization (התאמה לאזור), בוחרים מיקום בקנדה מהרשימה.
- לוחצים על הבא.
- בשדה ארגון (O), מזינים את שם החברה.
- אופציונלי: בשדה יחידה ארגונית (OU), מזינים את החלוקה המשנית של החברה או את היחידה העסקית.
- אופציונלי: בשדה שם המדינה (C), מזינים קוד מדינה בן שתי אותיות.
- אופציונלי: בשדה State or province name (שם המדינה או הפרובינציה), מזינים את שם המדינה.
- אופציונלי: בשדה שם היישוב, מזינים את שם העיר.
- בשדה שם נפוץ (CN) של רשות האישורים, מזינים את שם רשות האישורים.
- לוחצים על Continue.
- בוחרים את אלגוריתם המפתח שהכי מתאים לצרכים שלכם. פרטים נוספים על אפשרויות מפתחות החתימה זמינים במאמר הגדרת מפתחות חתימה של רשות אישורים.
- כדי להשתמש במפתח חתימה בניהול הלקוח, בוחרים באפשרות מפתח בניהול הלקוח ומזינים את הגרסה של המפתח הקריפטוגרפי ב-Cloud Key Management Service.
- לוחצים על Continue.
- בוחרים אם רוצים להשתמש בקטגוריה של Cloud Storage שמנוהלת על ידי Google או בקטגוריה שמנוהלת על ידי הלקוח.
- בקטגוריה של Cloud Storage בניהול Google, שירות CA יוצר קטגוריה בניהול Google באותו מיקום שבו נמצא ה-CA.
- כדי לבחור קטגוריה של Cloud Storage בניהול הלקוח, לוחצים על Browse ובוחרים אחת מהקטגוריות הקיימות של Cloud Storage.
- לוחצים על Continue.
השלבים הבאים הם אופציונליים.
כדי להוסיף תוויות לקהל המקור:
- לוחצים על הוספת פריט.
- בשדה מפתח 1, מזינים את מפתח התווית.
- בשדה ערך 1, מזינים את ערך התווית.
- אם רוצים להוסיף עוד תווית, לוחצים על הוספת פריט. לאחר מכן, מוסיפים את המפתח והערך של התווית כמו שצוין בשלבים 2 ו-3.
- לוחצים על Continue.
בודקים בקפידה את כל ההגדרות ולוחצים על סיום כדי ליצור את רשות האישורים.
הורדת ה-CSR
- בדף רשות אישורים, בוחרים את רשות האישורים שרוצים להפעיל.
- לוחצים על הפעלה.
בתיבת הדו-שיח שנפתחת, לוחצים על הורדת CSR.
gcloud
כדי ליצור מאגר של רשויות אישורים עבור רשות האישורים המשנית, מריצים את הפקודה הבאה. מידע נוסף זמין במאמר בנושא יצירת מאגר של רשויות אישורים.
gcloud privateca pools create SUBORDINATE_POOL_ID --location=LOCATIONמחליפים את מה שכתוב בשדות הבאים:
- SUBORDINATE_POOL_ID: השם של מאגר רשות האישורים
- LOCATION: המיקום של מאגר אישורי ה-CA
כדי ליצור רשות אישורים משנית במאגר רשויות האישורים שנוצר, מריצים את הפקודה הבאה:
gcloudהפקודהgcloudיוצרת גם CSR ושומרת אותו בקובץ FILE_NAME.gcloud privateca subordinates create SUBORDINATE_CA_ID \ --pool=SUBORDINATE_POOL_ID \ --location=LOCATION \ --create-csr --csr-output-file=FILE_NAME \ --key-algorithm="ec-p256-sha256" \ --subject="CN=Example Server TLS CA, O=Example LLC"מחליפים את מה שכתוב בשדות הבאים:
- SUBORDINATE_CA_ID: המזהה הייחודי של רשות האישורים המשנית
- SUBORDINATE_POOL_ID: השם של מאגר רשות האישורים
- LOCATION: המיקום של מאגר אישורי ה-CA
- FILE_NAME: השם של הקובץ שבו נכתב ה-CSR בקידוד PEM
הדגל
--key-algorithmמציין את האלגוריתם הקריפטוגרפי שבו רוצים להשתמש ליצירת מפתח מנוהל של Cloud HSM עבור רשות האישורים.הדגל
--subjectמציין את שם הנושא של האישור לפי X.501.מידע נוסף על הפקודה
gcloud privateca subordinates createזמין במאמר gcloud privateca subordinates create.כדי ליצור CA משני באמצעות מפתח חתימה בניהול הלקוח, מריצים את הפקודה הבאה:
gcloud privateca subordinates create SUBORDINATE_CA_ID \ --pool=SUBORDINATE_POOL_ID \ --location=LOCATION \ --create-csr --csr-output-file=FILE_NAME \ --kms-key-version=KMS_KEY_VERSION \ --subject="CN=Example Server TLS CA, O=Example LLC"מחליפים את מה שכתוב בשדות הבאים:
- SUBORDINATE_CA_ID: המזהה הייחודי של רשות האישורים המשנית
- SUBORDINATE_POOL_ID: השם של מאגר רשות האישורים
- LOCATION: המיקום של מאגר אישורי ה-CA
- FILE_NAME: השם של הקובץ שבו נכתב ה-CSR בקידוד PEM
- KMS_KEY_VERSION: מזהה המשאב המלא של גרסה של מפתח קריפטוגרפי ב-Cloud KMS בניהול הלקוח, לשימוש כמפתח חתימה
פרטים נוספים על אפשרויות של מפתחות חתימה ועל הכנת מפתח חתימה בניהול הלקוח מופיעים במאמר בנושא הגדרת מפתחות חתימה של רשות אישורים.
ההצהרה הבאה מוחזרת כשיוצרים את ה-CSR:
Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID] and saved CSR to FILE_NAME.
כדי לראות את הרשימה המלאה של ההגדרות הזמינות, מריצים את הפקודה הבאה:
gcloud privateca subordinates create --help
אם איבדתם את ה-CSR, תוכלו להוריד אותו שוב באמצעות הפקודה הבאה:
gcloud privateca subordinates get-csr SUBORDINATE_CA_ID \
--pool=SUBORDINATE_POOL_ID \
--location=LOCATION
Terraform
כדי ליצור מאגר רשויות אישורים ורשות אישורים משנית במאגר הזה, משתמשים בקובץ התצורה הבא:
resource "google_privateca_ca_pool" "default" { name = "test-ca-pool" location = "us-central1" tier = "ENTERPRISE" } resource "google_privateca_certificate_authority" "sub-ca" { pool = google_privateca_ca_pool.default.name certificate_authority_id = "my-certificate-authority-sub" location = "us-central1" config { subject_config { subject { organization = "HashiCorp" common_name = "my-subordinate-authority" } subject_alt_name { dns_names = ["hashicorp.com"] } } x509_config { ca_options { is_ca = true # Force the sub CA to only issue leaf certs max_issuer_path_length = 0 } key_usage { base_key_usage { cert_sign = true crl_sign = true } extended_key_usage { } } } } lifetime = "86400s" key_spec { algorithm = "RSA_PKCS1_4096_SHA256" } type = "SUBORDINATE" }כדי לשלוף את ה-CSR, מוסיפים את ההגדרה הבאה.
data "google_privateca_certificate_authority" "sub-ca-csr" { location = "us-central1" pool = google_privateca_ca_pool.default.name certificate_authority_id = google_privateca_certificate_authority.sub-ca.certificate_authority_id } output "csr" { value = data.google_privateca_certificate_authority.sub-ca-csr.pem_csr }מריצים את
terraform apply.
חתימה על ה-CSR
מעבירים את קובץ ה-CSR שנוצר לחבר בארגון שאחראי על הנפקת אישורים, ומבקשים ממנו לחתום עליו. השלבים הספציפיים תלויים בהגדרה של הארגון.
אפשר להתנסות ב-CA פשוט של שורש באמצעות הפקודות הבאות של openssl:
מעטפת
מגדירים את ההגדרות של רשות האישורים הבסיסית החדשה.
cat > root.conf <<- EOM
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
prompt = no
[ req_distinguished_name ]
commonName = Sample Root
[ v3_ca ]
subjectKeyIdentifier=hash
basicConstraints=critical, CA:true
EOM
יוצרים את ה-CA החדש ברמה הבסיסית.
openssl req -x509 -new -nodes -config root.conf -keyout rootCA.key \
-days 3000 -out rootCA.crt -batch
מגדירים את התוספים שצריך להוסיף לאישור החדש של רשות אישורים משנית.
cat > extensions.conf <<- EOM
basicConstraints=critical,CA:TRUE,pathlen:0
keyUsage=critical,keyCertSign,cRLSign
extendedKeyUsage=critical,serverAuth
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid
EOM
חתימה על בקשת חתימה על אישור (CSR) של רשות אישורים (CA) משנית באמצעות אישור הבסיס הזה.
openssl x509 -req -in FILE_NAME -CA rootCA.crt -CAkey rootCA.key \
-CAcreateserial -out subordinate.crt -days 1095 -sha256 -extfile extensions.conf
שרשור כל שרשרת האישורים לקובץ אחד.
cat subordinate.crt > chain.crt
cat rootCA.crt >> chain.crt
העלאת האישור החתום
כדי להפעיל CA משני באמצעות אישור חתום:
המסוף
נכנסים לדף Certificate Authority Service במסוףGoogle Cloud .
לוחצים על הכרטיסייה מנהל רשויות אישורים.
בקטע רשויות אישורים, בוחרים את רשות האישורים המשנית שיצרתם.
לוחצים על הפעלה.
בתיבת הדו-שיח שנפתחת, לוחצים על הורדת CSR כדי להוריד את קובץ ה-CSR בקידוד PEM שרשות האישורים המנפיקה יכולה לחתום עליו.
לוחצים על הבא.
בשדה העלאת שרשרת אישורים, לוחצים על עיון.
מעלים את קובץ האישור החתום עם הסיומת
.crt.לוחצים על הפעלה.
gcloud
gcloud privateca subordinates activate SUBORDINATE_CA_ID \
--pool=SUBORDINATE_POOL_ID \
--location=LOCATION \
--pem-chain ./chain.crt
מחליפים את מה שכתוב בשדות הבאים:
- SUBORDINATE_CA_ID: המזהה הייחודי של רשות האישורים המשנית שרוצים להפעיל
- SUBORDINATE_POOL_ID: השם של מאגר רשויות האישורים שמכיל את רשות האישורים המשנית
- LOCATION: המיקום של מאגר אישורי ה-CA. רשימה מלאה של המיקומים זמינה במאמר בנושא מיקומים.
חובה להשתמש בדגל --pem-chain. הדגל הזה מציין קובץ שמכיל את רשימת האישורים בקידוד PEM. רשימת האישורים מתחילה באישור ה-CA הנוכחי ומסתיימת באישור ה-CA הבסיסי.
מידע נוסף על הפקודה gcloud privateca subordinates activate זמין במאמר gcloud privateca subordinates activate.
ההצהרה הבאה מוחזרת כשמעלים את האישור החתום:
Activated certificate authority [SUBORDINATE_CA_ID].
Terraform
- שומרים את אישור CA החתום באופן מקומי בשם
subordinate.crt. - שומרים את אישורי רשות האישורים של החותם באופן מקומי כ-
rootCA.crt. - מסירים את ההגדרה לאחזור CSR שצוינה בשלב הראשון, כי המערכת מנסה לאחזר CSR שלא מורשה אחרי הפעלת CA.
מעדכנים את ההגדרות של רשות האישורים המשנית בשדות הבאים ומריצים את
terraform apply.pem_ca_certificate = file("subordinate.crt") subordinate_config { pem_issuer_chain { pem_certificates = [file("rootCA.crt")] } }
אם שרשרת הגורם המנפיק כוללת יותר מ-CA אחד, צריך לציין את הערך כ-[file("intermediateCA.cert"), file("rootCA.crt")].