Certificate Authority Service๋กœ ๋ฆฌ์ „๋ณ„ Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ ๋ฐฐํฌ


์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ ๊ธฐ๊ด€ ์„œ๋น„์Šค๊ฐ€ ์žˆ๋Š” ๋ฆฌ์ „๋ณ„ Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ๋ฅผ ๋ฆฌ์ „ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ๋˜๋Š” ๋ฆฌ์ „ ๋‚ด๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์— ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ „์—ญ ์™ธ๋ถ€ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ๋˜๋Š” ๊ต์ฐจ ๋ฆฌ์ „ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์— ๋ฐฐํฌํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋ชฉํ‘œ

์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ๋‹ค์Œ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

  • ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CA ์„œ๋น„์Šค๋กœ Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ๋Œ€์ƒ HTTPS ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์›๋˜๋Š” ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์— ์ธ์ฆ์„œ๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. ์™ธ๋ถ€ ID ๊ณต๊ธ‰์—…์ฒด (IdP)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € ์ œํœด ID๋กœ gcloud CLI์— ๋กœ๊ทธ์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  7. gcloud CLI๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋ ค๋ฉด, ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. ์™ธ๋ถ€ ID ๊ณต๊ธ‰์—…์ฒด (IdP)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € ์ œํœด ID๋กœ gcloud CLI์— ๋กœ๊ทธ์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  13. gcloud CLI๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋ ค๋ฉด, ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud init
  14. CA Service API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  15. CA ํ’€์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด CA ํ’€์— CA๋ฅผ 1๊ฐœ ์ด์ƒ ๋งŒ๋“ค์–ด ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  16. ์ด ํŠœํ† ๋ฆฌ์–ผ์˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด๊ธฐ ์ „์— ๋‹ค์Œ ์‚ฌํ•ญ์„ ๊ธฐ๋กํ•ด ๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • Certificate Authority Service๋กœ ๋งŒ๋“  ์ธ์ฆ์„œ๋Š” ๊ณต๊ฐœ์ ์œผ๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ์ ์œผ๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๋ ค๋ฉด DNS ์Šน์ธ ๋˜๋Š” ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์Šน์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“œ์„ธ์š”.
    • ๋Œ€์ƒ CA ํ’€์— ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์ •์ฑ…์ด ์ ์šฉ๋˜๋ฉด ๋‹ค์Œ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋กœ ์ธํ•ด ์ธ์ฆ์„œ ํ”„๋กœ๋น„์ €๋‹์ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      • ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์ •์ฑ…์ด ์š”์ฒญ๋œ ์ธ์ฆ์„œ๋ฅผ ์ฐจ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ธ์ฆ์„œ๊ฐ€ ๋ฐœ๊ธ‰๋˜์ง€ ์•Š์•„ ๋น„์šฉ์ด ์ฒญ๊ตฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
      • ์ •์ฑ…์ด ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์ธ์ฆ์„œ์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž์™€ ์™„๋ฒฝํ•˜๊ฒŒ ํ˜ธํ™˜๋˜์ง€ ์•Š๋”๋ผ๋„ ์ธ์ฆ์„œ๊ฐ€ ๋ฐœ๊ธ‰๋œ ์ดํ›„ ์š”๊ธˆ์ด ์ฒญ๊ตฌ๋ฉ๋‹ˆ๋‹ค.
    • ๋ฆฌ์ „๋ณ„ CA ํ’€์—์„œ ๋ฐœ๊ธ‰๋œ Google ๊ด€๋ฆฌํ˜• TLS ์ธ์ฆ์„œ๋Š” ์ „์—ญ์ด๋ฉฐ ๋ชจ๋“  ๋ฆฌ์ „์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ•„์š”ํ•œ ์—ญํ• 

    ์ด ํŠœํ† ๋ฆฌ์–ผ์˜ ํƒœ์Šคํฌ๋ฅผ ์™„๋ฃŒํ•˜๋ ค๋ฉด ๋‹ค์Œ ์—ญํ• ์ด ๋ถ€์—ฌ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

    • ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž ์†Œ์œ ์ž(roles/certificatemanager.owner)

      ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    • Compute ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ๊ด€๋ฆฌ์ž (roles/compute.loadBalancerAdmin) ๋˜๋Š” Compute ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ์ž (roles/compute.networkAdmin)

      HTTPS ๋Œ€์ƒ ํ”„๋ก์‹œ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    • CA ์„œ๋น„์Šค ๊ด€๋ฆฌ์ž (roles/privateca.admin)

      CA ์„œ๋น„์Šค ๋‚ด์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

    ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ

    ์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ ๋ฐฑ์—”๋“œ, ์ƒํƒœ ์ ๊ฒ€, ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค, URL ๋งต์„ ์ด๋ฏธ ๋งŒ๋“ค๊ณ  ๊ตฌ์„ฑํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. URL ๋งต์˜ ์ด๋ฆ„์€ ์ด ํŠœํ† ๋ฆฌ์–ผ์˜ ํ›„๋ฐ˜๋ถ€์—์„œ ํ•„์š”ํ•˜๋ฏ€๋กœ URL ๋งต ์ด๋ฆ„์„ ๊ธฐ๋กํ•ด ๋‘ก๋‹ˆ๋‹ค.

    ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž์™€ CA ์„œ๋น„์Šค ํ†ตํ•ฉ ๊ตฌ์„ฑ

    ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž์™€ CA ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

    1. ํƒ€๊ฒŸ Google Cloud ํ”„๋กœ์ ํŠธ์—์„œ ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

      gcloud beta services identity create --service=certificatemanager.googleapis.com \
          --project=PROJECT_ID
      

      PROJECT_ID๋ฅผ ํƒ€๊ฒŸGoogle Cloud ํ”„๋กœ์ ํŠธ์˜ ID๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

      ์ด ๋ช…๋ น์–ด๋Š” ์ƒ์„ฑ๋œ ์„œ๋น„์Šค ID์˜ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

      service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
      
    2. ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€์ƒ CA ํ’€ ๋‚ด์—์„œ CA ์„œ๋น„์Šค ์ธ์ฆ์„œ ์š”์ฒญ์ž ์—ญํ• (roles/privateca.certificateRequester)์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

      gcloud privateca pools add-iam-policy-binding CA_POOL \
          --location LOCATION \
          --member "serviceAccount:SERVICE_ACCOUNT" \
          --role roles/privateca.certificateRequester
      

      ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

      • CA_POOL: ๋Œ€์ƒ CA ํ’€์˜ ID์ž…๋‹ˆ๋‹ค.
      • LOCATION: ํƒ€๊ฒŸ Google Cloud ์œ„์น˜์ž…๋‹ˆ๋‹ค.
      • SERVICE_ACCOUNT: 1๋‹จ๊ณ„์—์„œ ๋งŒ๋“  ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ „์ฒด ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    3. CA ํ’€์˜ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

      ์ฝ˜์†”

      1. Google Cloud ์ฝ˜์†”์˜ Certificate Manager ํŽ˜์ด์ง€์—์„œ Issuance configs ํƒญ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

        ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž๋กœ ์ด๋™

      2. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋งŒ๋“ค๊ธฐ ํŽ˜์ด์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

      3. ์ด๋ฆ„ ํ•„๋“œ์— ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ์˜ ๊ณ ์œ ํ•œ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

      4. ์„ ํƒ์‚ฌํ•ญ: ์„ค๋ช… ํ•„๋“œ์— ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

      5. ์œ„์น˜๋กœ ๋ฆฌ์ „์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

        ๋ฆฌ์ „์— ์ธ์ฆ์„œ ๋ฐ CA ํ’€๊ณผ ๋™์ผํ•œ ๋ฆฌ์ „์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      6. ์„ ํƒ์‚ฌํ•ญ: ์ „์ฒด ๊ธฐ๊ฐ„ ํ•„๋“œ์— ๋ฐœ๊ธ‰๋œ ์ธ์ฆ์„œ์˜ ์ „์ฒด ๊ธฐ๊ฐ„์„ ์ผ ๋‹จ์œ„๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์€ 21~30์ผ(ํฌํ•จ) ์‚ฌ์ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

      7. ์„ ํƒ์‚ฌํ•ญ: ์ˆœํ™˜ ๊ธฐ๊ฐ„ ๋น„์œจ์—์„œ ๊ฐฑ์‹  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์ธ์ฆ์„œ ์ˆ˜๋ช… ๋น„์œจ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์œ ํšจํ•œ ๊ฐ’ ๋ฒ”์œ„๋ฅผ ์ฐพ์œผ๋ ค๋ฉด ์ „์ฒด ๊ธฐ๊ฐ„ ๋ฐ ์ˆœํ™˜ ๊ธฐ๊ฐ„ ๋น„์œจ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

      8. ์„ ํƒ์‚ฌํ•ญ: ํ‚ค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชฉ๋ก์—์„œ ๋น„๊ณต๊ฐœ ํ‚ค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•  ํ‚ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      9. CA ํ’€ ๋ชฉ๋ก์—์„œ ์ด ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค์— ํ• ๋‹นํ•  CA ํ’€์˜ ์ด๋ฆ„์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      10. ๋ผ๋ฒจ ํ•„๋“œ์—์„œ ์ธ์ฆ์„œ์— ์—ฐ๊ฒฐํ•  ๋ผ๋ฒจ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ผ๋ฒจ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋ผ๋ฒจ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•˜๊ณ  ๋ผ๋ฒจ์— ํ‚ค์™€ ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

      11. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

      gcloud

      gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
          --ca-pool=CA_POOL \
          --location=LOCATION
      

      ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

      • ISSUANCE_CONFIG_NAME: ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
      • CA_POOL: ์ด ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค์— ํ• ๋‹นํ•  CA ํ’€์˜ ์ „์ฒด ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ์™€ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
      • LOCATION: ํƒ€๊ฒŸ Google Cloud ์œ„์น˜์ž…๋‹ˆ๋‹ค. CA ํ’€ ๋ฐ ์ธ์ฆ์„œ์™€ ๋™์ผํ•œ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

      ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

    CA ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค์—์„œ ๋ฐœ๊ธ‰ํ•œ Google ๊ด€๋ฆฌ ์ธ์ฆ์„œ ๋งŒ๋“ค๊ธฐ

    CA ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค์—์„œ ๋ฐœ๊ธ‰ํ•œ Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

    ์ฝ˜์†”

    1. Google Cloud ์ฝ˜์†”์—์„œ ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

      ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž๋กœ ์ด๋™

    2. ์ธ์ฆ์„œ ํƒญ์—์„œ ์ธ์ฆ์„œ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    3. ์ธ์ฆ์„œ ์ด๋ฆ„ ํ•„๋“œ์— ์ธ์ฆ์„œ์˜ ๊ณ ์œ ํ•œ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    4. ์„ ํƒ์‚ฌํ•ญ: ์„ค๋ช… ํ•„๋“œ์— ์ธ์ฆ์„œ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ช…์„ ํ†ตํ•ด ์ธ์ฆ์„œ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    5. ์œ„์น˜๋กœ ๋ฆฌ์ „์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    6. ๋ฆฌ์ „ ๋ชฉ๋ก์—์„œ ๋ฆฌ์ „์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    7. ์ธ์ฆ์„œ ์œ ํ˜•์—์„œ Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ ๋งŒ๋“ค๊ธฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    8. ์ธ์ฆ ๊ธฐ๊ด€ ์œ ํ˜•์—์„œ ๋น„๊ณต๊ฐœ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    9. ๋„๋ฉ”์ธ ์ด๋ฆ„ ํ•„๋“œ์— ์ธ์ฆ์„œ์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„ ๋ชฉ๋ก์„ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋„๋ฉ”์ธ ์ด๋ฆ„์€ myorg.example.com๊ณผ ๊ฐ™์€ ์ •๊ทœํ™”๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    10. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ์„ ํƒ์—์„œ ๋Œ€์ƒ CA ํ’€์„ ์ฐธ์กฐํ•˜๋Š” ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    11. ๋ผ๋ฒจ ํ•„๋“œ์—์„œ ์ธ์ฆ์„œ์— ์—ฐ๊ฒฐํ•  ๋ผ๋ฒจ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ผ๋ฒจ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋ผ๋ฒจ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•˜๊ณ  ๋ผ๋ฒจ์— ํ‚ค์™€ ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

    12. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

      ์ƒˆ ์ธ์ฆ์„œ๊ฐ€ ์ธ์ฆ์„œ ๋ชฉ๋ก์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    gcloud

    Certificate Authority Service๋กœ ๋ฆฌ์ „ Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด certificate-manager certificates create ๋ช…๋ น์–ด๋ฅผ issuance-config ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    gcloud certificate-manager certificates create CERTIFICATE_NAME \
        --domains="DOMAIN_NAMES" \
        --issuance-config="ISSUANCE_CONFIG_NAME" \
        --location="LOCATION"
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • CERTIFICATE_NAME: ์ธ์ฆ์„œ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • DOMAIN_NAME: ๋Œ€์ƒ ๋„๋ฉ”์ธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ ์ด๋ฆ„์€ myorg.example.com๊ณผ ๊ฐ™์€ ์ •๊ทœํ™”๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ISSUANCE_CONFIG_NAME: ๋Œ€์ƒ CA ํ’€์„ ์ฐธ์กฐํ•˜๋Š” ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • LOCATION: ํƒ€๊ฒŸ Google Cloud ์œ„์น˜์ž…๋‹ˆ๋‹ค. CA ํ’€, ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค, ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ์™€ ๋™์ผํ•œ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    API

    ๋‹ค์Œ๊ณผ ๊ฐ™์ด certificates.create ๋ฉ”์„œ๋“œ์— POST ์š”์ฒญ์„ ์ „์†กํ•˜์—ฌ ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    POST /v1/projects/PROJECT_ID/locations/LOCATION/certificates?certificate_id=CERTIFICATE_NAME"
    {
     name: "/projects/example-project/locations/LOCATION/certificates/my-cert",
     "managed": {
      "domains": ["DOMAIN_NAME"],
      "issuanceConfig": "ISSUANCE_CONFIG_NAME",
     },
    }
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • PROJECT_ID: Google Cloud ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค.
    • LOCATION: ํƒ€๊ฒŸ Google Cloud ์œ„์น˜์ž…๋‹ˆ๋‹ค. CA ํ’€, ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค, ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ์™€ ๋™์ผํ•œ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • CERTIFICATE_NAME: ์ธ์ฆ์„œ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • DOMAIN_NAME: ๋Œ€์ƒ ๋„๋ฉ”์ธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ ์ด๋ฆ„์€ myorg.example.com๊ณผ ๊ฐ™์€ ์ •๊ทœํ™”๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ISSUANCE_CONFIG_NAME: ๋Œ€์ƒ CA ํ’€์„ ์ฐธ์กฐํ•˜๋Š” ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    ์ธ์ฆ์„œ ์ƒํƒœ ํ™•์ธ

    ์ธ์ฆ์„œ๋ฅผ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์— ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ์ธ์ฆ์„œ๊ฐ€ ํ™œ์„ฑ ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ ์ƒํƒœ๊ฐ€ ACTIVE๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฐ ๋ช‡ ๋ถ„ ์ •๋„ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฝ˜์†”

    1. Google Cloud ์ฝ˜์†”์—์„œ ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

      ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž๋กœ ์ด๋™

    2. ์ธ์ฆ์„œ ํƒญ์—์„œ ์ธ์ฆ์„œ์˜ ์ƒํƒœ ์—ด์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    gcloud

    ์ธ์ฆ์„œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

    gcloud certificate-manager certificates describe CERTIFICATE_NAME \
        --location=LOCATION
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • CERTIFICATE_NAME: ์ธ์ฆ์„œ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • LOCATION: Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“  ๋Œ€์ƒ Google Cloud ์œ„์น˜์ž…๋‹ˆ๋‹ค.

    ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

    createTime: '2021-10-20T12:19:53.370778666Z'
    expireTime: '2022-05-07T05:03:49Z'
    managed:
      domains:
      - myorg.example.com
      issuanceConfig: projects/myproject/locations/LOCATION/issuanceConfigs/myissuanceConfig
      state: ACTIVE
    name: projects/myproject/locations/LOCATION/certificates/mycertificate
    pemCertificate: |
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----
    sanDnsnames:
      - myorg.example.com
    updateTime: '2021-10-20T12:19:55.083385630Z'
    

    ์ถ”๊ฐ€ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋‹จ๊ณ„๋Š” ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

    ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์— ๋ฆฌ์ „๋ณ„ Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ ๋ฐฐํฌ

    ๋ฆฌ์ „๋ณ„ Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋ฉด ๋Œ€์ƒ ํ”„๋ก์‹œ์— ์ง์ ‘ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    ๋Œ€์ƒ ํ”„๋ก์‹œ์— ์ธ์ฆ์„œ ์ง์ ‘ ์—ฐ๊ฒฐ

    ์ƒˆ ๋Œ€์ƒ ํ”„๋ก์‹œ ๋˜๋Š” ๊ธฐ์กด ๋Œ€์ƒ ํ”„๋ก์‹œ์— ์ธ์ฆ์„œ๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ธ์ฆ์„œ๋ฅผ ์ƒˆ ๋Œ€์ƒ ํ”„๋ก์‹œ์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด gcloud compute target-https-proxies create ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    gcloud compute target-https-proxies create PROXY_NAME \
        --certificate-manager-certificates=CERTIFICATE_NAME \
        --url-map=URL_MAP \
        --region=LOCATION
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • PROXY_NAME: ๋Œ€์ƒ ํ”„๋ก์‹œ ์ด๋ฆ„
    • CERTIFICATE_NAME: ์ธ์ฆ์„œ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • URL_MAP: URL ๋งต์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ค ๋•Œ URL ๋งต์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
    • LOCATION: HTTPS ๋Œ€์ƒ ํ”„๋ก์‹œ๋ฅผ ๋งŒ๋“ค ๋Œ€์ƒ Google Cloud ์œ„์น˜์ž…๋‹ˆ๋‹ค.

    ๊ธฐ์กด ๋Œ€์ƒ HTTPS ํ”„๋ก์‹œ์— ์ธ์ฆ์„œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด gcloud compute target-https-proxies update ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ๋Œ€์ƒ ํ”„๋ก์‹œ์˜ ์ด๋ฆ„์„ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ ๋Œ€์ƒ ํ”„๋ก์‹œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜์—ฌ ๋Œ€์ƒ ํ”„๋ก์‹œ์˜ ์ด๋ฆ„์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    gcloud compute target-https-proxies update PROXY_NAME \
        --region=LOCATION \
        --certificate-manager-certificates=CERTIFICATE_NAME
    

    ๋Œ€์ƒ ํ”„๋ก์‹œ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    gcloud compute target-https-proxies list
    

    CA ์„œ๋น„์Šค์—์„œ ๋ฐœ๊ธ‰ํ•œ ์ธ์ฆ์„œ ๋ฌธ์ œ ํ•ด๊ฒฐ

    ๋ฌธ์ œ ํ•ด๊ฒฐ ๋‹จ๊ณ„๋Š” CA ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค์—์„œ ๋ฐœ๊ธ‰ํ•œ ์ธ์ฆ์„œ ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    ์‚ญ์ œ

    ์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ ์‚ฌ์šฉํ•œ ๋ฆฌ์†Œ์Šค ๋น„์šฉ์ด Google Cloud ๊ณ„์ •์— ์ฒญ๊ตฌ๋˜์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜์„ธ์š”.

    1. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์™€ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

      ๋ถ€ํ•˜ ๋ถ„์‚ฐ ์„ค์ • ์‚ญ์ œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    2. Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

      ์ฝ˜์†”

      1. Google Cloud ์ฝ˜์†”์—์„œ ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

        ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž๋กœ ์ด๋™

      2. ์ธ์ฆ์„œ ํƒญ์—์„œ ์ธ์ฆ์„œ์˜ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      3. ์‚ญ์ œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

      4. ํ‘œ์‹œ๋˜๋Š” ๋Œ€ํ™”์ƒ์ž์—์„œ ์‚ญ์ œ๋ฅผ ํด๋ฆญํ•˜์—ฌ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

      gcloud

      gcloud certificate-manager certificates delete CERTIFICATE_NAME \
          --location=LOCATION
      

      ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

      • CERTIFICATE_NAME: ์ธ์ฆ์„œ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
      • LOCATION: ํƒ€๊ฒŸ Google Cloud ์œ„์น˜์ž…๋‹ˆ๋‹ค.
    3. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

      ์ฝ˜์†”

      1. Google Cloud ์ฝ˜์†”์˜ Certificate Manager ํŽ˜์ด์ง€์—์„œ Issuance configs ํƒญ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

        ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž๋กœ ์ด๋™

      2. ์‚ญ์ œํ•  ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค์˜ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      3. ์‚ญ์ œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

      4. ํ‘œ์‹œ๋˜๋Š” ๋Œ€ํ™”์ƒ์ž์—์„œ ์‚ญ์ œ๋ฅผ ํด๋ฆญํ•˜์—ฌ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

      gcloud

      gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME \
          --location=LOCATION
      

      ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

      • ISSUANCE_CONFIG_NAME: ๋Œ€์ƒ CA ํ’€์„ ์ฐธ์กฐํ•˜๋Š” ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
      • LOCATION: ํƒ€๊ฒŸ Google Cloud ์œ„์น˜์ž…๋‹ˆ๋‹ค.
    4. CA ํ’€์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

      CA ํ’€์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ์—์„œ ์ฐธ์กฐํ•˜๋Š” CA ํ’€์—์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ฌ์šฉ ์„ค์ •๋œ CA๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋ฉด ํ•ด๋‹น CA ํ’€์„ ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋“  ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ์„ ์‚ญ์ œํ•˜์„ธ์š”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ CA ํ’€ ์‚ญ์ œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

    ๋‹ค์Œ ๋‹จ๊ณ„