๊ณ„์ • ๋„์›€๋ง

์ง€์› / ๊ฐœ๋ฐœ์ž ๊ณ„์ • / ๊ธฐ๋Šฅ / TLS ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ APNs์™€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ํ•˜๊ธฐ

๊ธฐ๋Šฅ

TLS ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ APNs์™€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ํ•˜๊ธฐ

์•Œ๋ฆผ ์„œ๋ฒ„์—์„œ TLS ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Apple Push Notification Service(APNs)์™€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € ๊ฐœ๋ฐœ์ž ๊ณ„์ •์—์„œ ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ ๋ชจ๋‘์—์„œ ๋™์ž‘ํ•˜๋Š” APNs ํด๋ผ์ด์–ธํŠธ TLS ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ Mac์—์„œ ํด๋ผ์ด์–ธํŠธ TLS ์‹ ์› ์ •๋ณด๋ฅผ ๋‚ด๋ณด๋‚ด๊ณ  ์•Œ๋ฆผ ์„œ๋ฒ„์— ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„์— ์•ฑ์„ ๋ฐฐํฌํ•  ๋•Œ Xcode๊ฐ€ ์•ฑ ๊ตฌ์„ฑ์„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์œผ๋กœ ์ž๋™ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

๋˜๋Š” Xcode ํ”„๋กœ์ ํŠธ์—์„œ ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์•ฑ์—์„œ ์ถ”๊ฐ€ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ์—ญํ• : ๊ณ„์ • ์†Œ์œ ์ž ๋˜๋Š” ๊ด€๋ฆฌ์ž.

APNs ํด๋ผ์ด์–ธํŠธ TLS ์ธ์ฆ์„œ ์ƒ์„ฑํ•˜๊ธฐ

ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ๊ฐ์˜ ๋ฐฐํฌ ์•ฑ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ํด๋ผ์ด์–ธํŠธ TLS ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์—ฐ๊ฒฐ๋œ ์•ฑ ID์˜ ํ‘ธ์‹œ ์•Œ๋ฆผ์ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ๊ณ„์ •์—์„œ ์•ฑ ID์˜ APNs๊ฐ€ Configurable(๊ตฌ์„ฑ ๊ฐ€๋Šฅ)์—์„œ Enabled(ํ™œ์„ฑํ™”)๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

  1. ์ธ์ฆ์„œ, ์‹๋ณ„์ž ๋ฐ ํ”„๋กœํŒŒ์ผ์—์„œ ์‚ฌ์ด๋“œ๋ฐ”์˜ Identifiers(์‹๋ณ„์ž)๋ฅผ ํด๋ฆญํ•œ ๋‹ค์Œ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋Š” ๋ฒˆ๋“ค ID๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  2. Capabilities(๊ธฐ๋Šฅ) ์•„๋ž˜์—์„œ 'Push Notifications'(ํ‘ธ์‹œ ์•Œ๋ฆผ) ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•œ ํ›„ Configure(๊ตฌ์„ฑ)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ชจ๋‹ฌ์—์„œ Production SSL Certificate(ํ”„๋กœ๋•์…˜ SSL ์ธ์ฆ์„œ) ์•„๋ž˜์— ์žˆ๋Š” Create Certificate(์ธ์ฆ์„œ ์ƒ์„ฑ)๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  4. Mac์—์„œ ์ธ์ฆ์„œ ์„œ๋ช… ์š”์ฒญ์„ ์ƒ์„ฑํ•œ ๋‹ค์Œ Continue(๊ณ„์†)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. Choose File(ํŒŒ์ผ ์„ ํƒ)์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. ๋Œ€ํ™”์ƒ์ž๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ์ธ์ฆ์„œ ์š”์ฒญ ํŒŒ์ผ(ํ™•์žฅ์ž๊ฐ€ .certSigningRequest์ธ ํŒŒ์ผ)์„ ์„ ํƒํ•œ ๋‹ค์Œ Choose(์„ ํƒ)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. Continue(๊ณ„์†)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  8. Download(๋‹ค์šด๋กœ๋“œ)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  9. ์ธ์ฆ์„œ ํŒŒ์ผ(ํ™•์žฅ์ž๊ฐ€ .cer์ธ ํŒŒ์ผ)์ด ๋‹ค์šด๋กœ๋“œ ํด๋”์— ๋‹ค์šด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž ๊ณ„์ •์—์„œ ํ•ด๋‹น ์•ฑ ID์— APNs๊ฐ€ Enabled(ํ™œ์„ฑํ™”)๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Identifiers(์‹๋ณ„์ž) ์•„๋ž˜์—์„œ App IDs(์•ฑ ID)๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ํ™•์ธํ•˜๋ ค๋Š” ์•ฑ ID๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ๋œ ์ธ์ฆ์„œ๋Š” Push Notifications(ํ‘ธ์‹œ ์•Œ๋ฆผ) ํ–‰์—์„œ ํ‘œ์‹œ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ‚ค์ฒด์ธ์— ์ธ์ฆ์„œ๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด Mac์—์„œ ๋‹ค์šด๋กœ๋“œํ•œ ์ธ์ฆ์„œ ํŒŒ์ผ์„ ์ด์ค‘ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ๊ฐ€ ํ‚ค์ฒด์ธ ์ ‘๊ทผ์˜ ๋‚ด ์ธ์ฆ์„œ ์นดํ…Œ๊ณ ๋ฆฌ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

Mac์—์„œ ํด๋ผ์ด์–ธํŠธ TLS ์‹ ์› ์ •๋ณด ๋‚ด๋ณด๋‚ด๊ธฐ

์‹ ์›์„ ์ƒ์„ฑํ•œ Mac์˜ ํ‚ค์ฒด์ธ์—์„œ ์‹ ์› ์ •๋ณด๋ฅผ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ ํ•ด๋‹น ์ •๋ณด๋ฅผ ์ œ๊ณต์—…์ฒด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ APNs์˜ ๊ฐœ๋ฐœ ๋ฒ„์ „ ๋˜๋Š” ํ”„๋กœ๋•์…˜ ๋ฒ„์ „๊ณผ ์—ฐ๊ฒฐ๋œ ์„œ๋ฒ„์˜ ์ ์ ˆํ•œ ์œ„์น˜์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

  1. ํ‚ค์ฒด์ธ ์ ‘๊ทผ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  2. ์นดํ…Œ๊ณ ๋ฆฌ ์„น์…˜์—์„œ ๋‚ด ์ธ์ฆ์„œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ๋‚ด๋ณด๋‚ผ ์ธ์ฆ์„œ๋ฅผ ์ฐพ์•„ ํ•ด๋‹น ์ธ์ฆ์„œ์˜ ๋‚ด์šฉ์„ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.

    ์ธ์ฆ์„œ์™€ ๊ฐœ์ธ ํ‚ค๊ฐ€ ๋ชจ๋‘ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

  4. ์ธ์ฆ์„œ์™€ ํ‚ค๋ฅผ ๋ชจ๋‘ ์„ ํƒํ•œ ๋‹ค์Œ ํŒŒ์ผ > ํ•ญ๋ชฉ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  5. ํŒŒ์ผ ํฌ๋งท ํŒ์—… ๋ฉ”๋‰ด์—์„œ ์„œ๋ฒ„์— ํ—ˆ์šฉ๋˜๋Š” ํŒŒ์ผ ํฌ๋งท์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. ๋ณ„๋„ ์ €์žฅ ํ•„๋“œ์— ํŒŒ์ผ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ  ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์ธ์ฆ์„œ์™€ ํ‚ค๋Š” ์ง€์ •ํ•œ ์œ„์น˜์— ๊ฐœ์ธ ์ •๋ณด ๊ตํ™˜ ํฌ๋งท(ํ™•์žฅ์ž๊ฐ€ .p12์ธ ํŒŒ์ผ)์˜ ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

ํ‘ธ์‹œ ์•Œ๋ฆผ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ๋กœ์ปฌ ๋ฐ ์›๊ฒฉ ์•Œ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ค๋ช…์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.