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


์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 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 ํ’€์— ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์ •์ฑ…์ด ์ ์šฉ๋˜๋ฉด ๋‹ค์Œ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋กœ ์ธํ•ด ์ธ์ฆ์„œ ํ”„๋กœ๋น„์ €๋‹์ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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

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

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

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

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

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

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

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

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

    ์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ ๋ฐฑ์—”๋“œ, ์ƒํƒœ ์ ๊ฒ€, ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค, 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 ์ฝ˜์†”์˜ ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ํƒญ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

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

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

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

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

      5. ์œ„์น˜์—์„œ ์ „์—ญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

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

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

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

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

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

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

      gcloud

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

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

      • ISSUANCE_CONFIG_NAME: ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
      • CA_POOL: ์ด ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค์— ํ• ๋‹นํ•  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
    

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

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

    API

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

    POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME"
    {
     "managed": {
      "domains": ["DOMAIN_NAME"],
      "issuanceConfig": "ISSUANCE_CONFIG_NAME",
     }
    }
    

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

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

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

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

    ์ฝ˜์†”

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

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

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

    gcloud

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

    gcloud certificate-manager certificates describe CERTIFICATE_NAME
    

    CERTIFICATE_NAME์„ ๋Œ€์ƒ Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

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

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

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

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

    ์ „์—ญ Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋ฉด ์ธ์ฆ์„œ ๋งต์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

    ์ธ์ฆ์„œ ๋งต ๋งŒ๋“ค๊ธฐ

    ์ธ์ฆ์„œ์™€ ์—ฐ๊ฒฐ๋œ ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์„ ์ฐธ์กฐํ•˜๋Š” ์ธ์ฆ์„œ ๋งต์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud

    ์ธ์ฆ์„œ ๋งต์„ ๋งŒ๋“ค๋ ค๋ฉด gcloud certificate-manager maps create ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
    

    CERTIFICATE_MAP_NAME์„ ๋Œ€์ƒ ์ธ์ฆ์„œ ๋งต์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    Terraform

    ์ธ์ฆ์„œ ๋งต์„ ๋งŒ๋“ค๋ ค๋ฉด google_certificate_manager_certificate_map ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    resource "google_certificate_manager_certificate_map" "certificate_map" {
      name        = "${local.name}-certmap-${random_id.tf_prefix.hex}"
      description = "${local.domain} certificate map"
      labels = {
        "terraform" : true
      }
    }

    ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ ๋งŒ๋“ค๊ธฐ

    ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์„ ๋งŒ๋“ค๊ณ  ์ธ์ฆ์„œ ๋ฐ ์ธ์ฆ์„œ ๋งต๊ณผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    gcloud

    ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์„ ๋งŒ๋“ค๋ ค๋ฉด gcloud certificate-manager maps entries create ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
        --map="CERTIFICATE_MAP_NAME" \
        --certificates="CERTIFICATE_NAME" \
        --hostname="HOSTNAME"
    

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

    • CERTIFICATE_MAP_ENTRY_NAME: ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • CERTIFICATE_MAP_NAME: ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์ด ์—ฐ๊ฒฐ๋œ ์ธ์ฆ์„œ ๋งต์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • CERTIFICATE_NAME: ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์— ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ์ธ์ฆ์„œ์˜ ์ด๋ฆ„
    • HOSTNAME: ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ๊ณผ ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„

      ์™€์ผ๋“œ ์นด๋“œ ๋„๋ฉ”์ธ๊ณผ ๋ฃจํŠธ ๋„๋ฉ”์ธ์„ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋ฃจํŠธ์™€ ์™€์ผ๋“œ ์นด๋“œ๊ฐ€ ์žˆ๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„(์˜ˆ: example.com ๋ฐ *.example.com)์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ example.com์šฉ ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ ํ•˜๋‚˜์™€ *.example.com์šฉ ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ ํ•˜๋‚˜ ๋“ฑ ๋‘ ๊ฐœ์˜ ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    Terraform

    ๋ฃจํŠธ ๋„๋ฉ”์ธ์œผ๋กœ ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์„ ๋งŒ๋“ค๋ ค๋ฉด google_certificate_manager_certificate_map_entry ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    resource "google_certificate_manager_certificate_map_entry" "first_entry" {
      name        = "${local.name}-first-entry-${random_id.tf_prefix.hex}"
      description = "example certificate map entry"
      map         = google_certificate_manager_certificate_map.certificate_map.name
      labels = {
        "terraform" : true
      }
      certificates = [google_certificate_manager_certificate.root_cert.id]
      hostname     = local.domain
    }

    ์™€์ผ๋“œ ์นด๋“œ ๋„๋ฉ”์ธ์œผ๋กœ ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์„ ๋งŒ๋“ค๋ ค๋ฉด google_certificate_manager_certificate_map_entry ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    resource "google_certificate_manager_certificate_map_entry" "second_entry" {
      name        = "${local.name}-second-entity-${random_id.tf_prefix.hex}"
      description = "example certificate map entry"
      map         = google_certificate_manager_certificate_map.certificate_map.name
      labels = {
        "terraform" : true
      }
      certificates = [google_certificate_manager_certificate.root_cert.id]
      hostname     = "*.${local.domain}"
    }

    ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์ด ํ™œ์„ฑ ์ƒํƒœ์ธ์ง€ ํ™•์ธ

    ํ•ด๋‹น ์ธ์ฆ์„œ ๋งต์„ ๋Œ€์ƒ ํ”„๋ก์‹œ์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์ „์— ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์ด ํ™œ์„ฑ ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์„ ํ™•์ธํ•˜๋ ค๋ฉด gcloud certificate-manager maps entries describe ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
        --map="CERTIFICATE_MAP_NAME"
    

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

    • CERTIFICATE_MAP_ENTRY_NAME: ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • CERTIFICATE_NAME: ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์— ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ์ธ์ฆ์„œ์˜ ์ด๋ฆ„

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

    certificates:
    createTime: '2021-09-06T10:01:56.229472109Z'
    hostname: example.com
    name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry
    state: ACTIVE
    updateTime: '2021-09-06T10:01:58.277031787Z'
    

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

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

    gcloud

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

    gcloud compute target-https-proxies create PROXY_NAME \
        --certificate-map="CERTIFICATE_MAP_NAME" \
        --url-map="URL_MAP" \
        --global
    

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

    • PROXY_NAME: ๋Œ€์ƒ ํ”„๋ก์‹œ ์ด๋ฆ„
    • CERTIFICATE_MAP_NAME: ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ๊ณผ ์—ฐ๊ฒฐ๋œ ์ธ์ฆ์„œ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์ธ์ฆ์„œ ๋งต์˜ ์ด๋ฆ„
    • URL_MAP: URL ๋งต์˜ ์ด๋ฆ„

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

    gcloud compute target-https-proxies update PROXY_NAME \
        --certificate-map="CERTIFICATE_MAP_NAME" \
        --global
    

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

    gcloud compute target-https-proxies list
    

    Terraform

    ์ธ์ฆ์„œ ๋งต์„ ๋Œ€์ƒ ํ”„๋ก์‹œ์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด google_compute_target_https_proxy ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    ๋Œ€์ƒ ํ”„๋ก์‹œ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ TLS(SSL) ์ธ์ฆ์„œ๋ฅผ ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๊ณ  ์ธ์ฆ์„œ ๋งต์„ ํ†ตํ•ด ์—ฐ๊ฒฐํ•˜๋ฉด ํ”„๋ก์‹œ๋Š” ์ธ์ฆ์„œ ๋งต์—์„œ ์ฐธ์กฐํ•˜๋Š” ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ง์ ‘ ์—ฐ๊ฒฐ๋œ TLS(SSL) ์ธ์ฆ์„œ๋Š” ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

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

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

    ์‚ญ์ œ

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

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

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

    2. ํ”„๋ก์‹œ์—์„œ ์ธ์ฆ์„œ ๋งต์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

      ์ธ์ฆ์„œ ๋งต์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      gcloud compute target-https-proxies delete PROXY_NAME
      

      ๋Œ€์ƒ HTTPS ํ”„๋ก์‹œ๋ฅผ ์œ ์ง€ํ•˜๋ ค๋ฉด ํ”„๋ก์‹œ์—์„œ ์ธ์ฆ์„œ ๋งต์„ ๋ถ„๋ฆฌํ•˜์„ธ์š”. ์ธ์ฆ์„œ ๋งต์„ ๋ถ„๋ฆฌํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์‚ฌํ•ญ์— ์œ ์˜ํ•˜์„ธ์š”.

      • ํ”„๋ก์‹œ์— ์ง์ ‘ ์—ฐ๊ฒฐ๋œ TLS (SSL) ์ธ์ฆ์„œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ธ์ฆ์„œ ๋งต์„ ๋ถ„๋ฆฌํ•˜๋ฉด ํ”„๋ก์‹œ๊ฐ€ ์ง์ ‘ ์—ฐ๊ฒฐ๋œ TLS (SSL) ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ก์‹œ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
      • ํ”„๋ก์‹œ์— ์ง์ ‘ ์—ฐ๊ฒฐ๋œ TLS (SSL) ์ธ์ฆ์„œ๊ฐ€ ์—†์œผ๋ฉด ์ธ์ฆ์„œ ๋งต์„ ํ”„๋ก์‹œ์—์„œ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์„œ ๋งต์„ ๋ถ„๋ฆฌํ•˜๋ ค๋ฉด ๋จผ์ € TLS(SSL) ์ธ์ฆ์„œ ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ์„ ํ”„๋ก์‹œ์— ์ง์ ‘ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

      ์ธ์ฆ์„œ ๋งต์„ ๋ถ„๋ฆฌํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      gcloud compute target-https-proxies update PROXY_NAME \
          --clear-certificate-map
      

      PROXY_NAME์„ ๋Œ€์ƒ ํ”„๋ก์‹œ์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    3. ์ธ์ฆ์„œ ๋งต์—์„œ ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

      gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \
          --map="CERTIFICATE_MAP_NAME"
      

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

      • CERTIFICATE_MAP_ENTRY_NAME: ์ธ์ฆ์„œ ๋งต ํ•ญ๋ชฉ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
      • CERTIFICATE_MAP_NAME: ์ธ์ฆ์„œ ๋งต์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    4. ์ธ์ฆ์„œ ๋งต์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

      gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
      

      CERTIFICATE_MAP_NAME์„ ์ธ์ฆ์„œ ๋งต์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

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

      ์ฝ˜์†”

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

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

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

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

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

      gcloud

      gcloud certificate-manager certificates delete CERTIFICATE_NAME
      

      CERTIFICATE_NAME์„ ๋Œ€์ƒ ์ธ์ฆ์„œ์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    6. ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

      ์ฝ˜์†”

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

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

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

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

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

      gcloud

       gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
       

      ISSUANCE_CONFIG_NAME์„ ๋Œ€์ƒ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๊ตฌ์„ฑ ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    7. CA ํ’€์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

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

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