๐Ÿ“Œ Jenkins + Spring Boot + HTTPS ์ž๋™ ๋ฐฐํฌ ์„ค์ •

My Pale Blue Dotยท2025๋…„ 5์›” 30์ผ

AWS

๋ชฉ๋ก ๋ณด๊ธฐ
4/4
post-thumbnail

๐Ÿ“… ๋‚ ์งœ

2025๋…„ 5์›” 30์ผ

๐Ÿ“ ํ•™์Šต ๋‚ด์šฉ

โœ… 5. GitHub Webhook ์„ค์ •

  1. Jenkins ํ”„๋กœ์ ํŠธ์—์„œ Configure > Build Triggers ๋กœ ์ด๋™

    โ†’ GitHub hook trigger for GITScm polling ์ฒดํฌ

  2. GitHub ์ €์žฅ์†Œ > Settings > Webhooks

    โ†’ Payload URL: http://[EC2 ํผ๋ธ”๋ฆญIP]:9090/github-webhook/

    โ†’ Content type: application/json

    โ†’ Just the push event๋งŒ ์„ ํƒ


โœ… 6. HTTPS ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ (Let's Encrypt)

  1. ๋„๋ฉ”์ธ ๊ตฌ๋งค

    • ๊ฐ€๋น„์•„์—์„œ .store ๋„๋ฉ”์ธ 500์›์— ๊ตฌ๋งค (www.artshub.store)
  2. AWS Route 53

    • ํ˜ธ์ŠคํŒ… ์˜์—ญ โ†’ ํผ๋ธ”๋ฆญ ํ˜ธ์ŠคํŒ… ์˜์—ญ ์ƒ์„ฑ
    • ์ƒ์„ฑ๋œ NS(Name Server) ๊ฐ’ 4๊ฐœ๋ฅผ ๊ฐ€๋น„์•„ DNS ๊ด€๋ฆฌ์—์„œ 1์ฐจ ~ 4์ฐจ ๋„ค์ž„์„œ๋ฒ„๋กœ ๋“ฑ๋ก
  3. EC2์—์„œ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰

    sudo su
    yum install certbot
    certbot certonly --standalone
    
    • ์ด๋ฉ”์ผ ์ฃผ์†Œ ์ž…๋ ฅ
    • ๋„๋ฉ”์ธ๋ช… www.artshub.store ์ž…๋ ฅ
    • ์ธ์ฆ ์™„๋ฃŒ ํ›„ ๋‹ค์Œ ๊ฒฝ๋กœ์— ํŒŒ์ผ ์ƒ์„ฑ๋จ:
      • /etc/letsencrypt/live/www.artshub.store/fullchain.pem
      • /etc/letsencrypt/live/www.artshub.store/privkey.pem
  4. .p12 ์ธ์ฆ์„œ๋กœ ๋ณ€ํ™˜

    cd /etc/letsencrypt/live/www.artshub.store/
    openssl pkcs12 -export \
      -in fullchain.pem \
      -inkey privkey.pem \
      -out keystore.p12 \
      -name ttp \
      -CAfile chain.pem \
      -caname root
    
    • ๋น„๋ฐ€๋ฒˆํ˜ธ: 123456์œผ๋กœ ์„ค์ • (Spring Boot ์„ค์ •๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•จ)

โœ… 7. ์ธ์ฆ์„œ Spring Boot์— ์ ์šฉ

  1. GitHub์—์„œ Spring Boot ํ”„๋กœ์ ํŠธ ํด๋ก 
  2. src/main/resources/ssl/ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
  3. ์œ„์—์„œ ์ƒ์„ฑํ•œ keystore.p12 ํŒŒ์ผ ๋ณต์‚ฌ
  4. GitHub์— push (ํ† ํฐ ์ธ์ฆ ํ•„์š”, classic token ์‚ฌ์šฉ)

โœ… 8. Spring Boot ์„ค์ • (application.properties)

server.port=443
server.ssl.key-store=classpath:ssl/keystore.p12
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password=123456
  • HTTPS์šฉ ํฌํŠธ 443 ์ง€์ •
  • ์ธ์ฆ์„œ ๊ฒฝ๋กœ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ช…์‹œ

โœ… 9. AWS ๋ณด์•ˆ๊ทธ๋ฃน ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™ ์ˆ˜์ •

  1. ๊ธฐ์กด 8080 ํฌํŠธ ์‚ญ์ œ
  2. ํฌํŠธ 80 (HTTP), 443 (HTTPS) ์ถ”๊ฐ€
    • ์œ ํ˜•: HTTP, HTTPS
    • ์†Œ์Šค: Anywhere (IPv4)

โœ… 10. ์ ‘์† ํ…Œ์ŠคํŠธ

  1. Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ •์ƒ ์‹คํ–‰ ํ™•์ธ

    ps aux | grep java
    
    • /usr/bin/java -jar demo-0.0.1-SNAPSHOT.jar ํ˜•ํƒœ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•จ
    • 443 ํฌํŠธ ์ ์œ  ํ™•์ธ: Tomcat started on port 443 (https)
  2. ์ตœ์ข… ์ ‘์† ํ…Œ์ŠคํŠธ

    • ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ ‘์†: https://www.artshub.store
    • ์ ‘์† ์„ฑ๊ณต ํ™•์ธ

๐Ÿ”ฅ ์ •๋ฆฌ

  • Jenkins๋กœ GitHub push ์‹œ ์ž๋™ ๋นŒ๋“œ โ†’ SSL ์ธ์ฆ์„œ๊ฐ€ ์ ์šฉ๋œ HTTPS ํ™˜๊ฒฝ์— ๋ฐฐํฌ๊นŒ์ง€ ์™„๋ฃŒ
  • AWS Route 53 + Let's Encrypt + Spring Boot SSL ์„ค์ •๊นŒ์ง€ ์ „์ฒด ์—ฐ๋™์„ ์‹ค์Šต ์™„๋ฃŒ
  • Webhook์œผ๋กœ GitHub๊ณผ Jenkins ์—ฐ๋™ํ•˜์—ฌ CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•

๐Ÿ”— ์ฐธ๊ณ  ์ž๋ฃŒ


profile
Here, My Pale Blue.๐ŸŒ

0๊ฐœ์˜ ๋Œ“๊ธ€