๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/AWS

[SSL/TLS] ๋ผ์ดํŠธ์„ธ์ผ ์šฐ๋ถ„ํˆฌ ์ธ์Šคํ„ด์Šค์—์„œ SSL/TLS ์ ์šฉํ•˜๊ธฐ

by OR15A 2024. 4. 21.

์‚ฌ์ „์ค€๋น„

  • ์„œ๋ฒ„ ์‹œ๊ฐ„ ์„ค์ •
    •  sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime 
  • ์šฐ๋ถ„ํˆฌ ํŒจํ‚ค์ง€ ์ตœ์‹  ์—…๋ฐ์ดํŠธ
    •  sudo apt update 
    •  apt ๋Š” SW ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜, ์—…๋ฐ์ดํŠธ, ์ œ๊ฑฐ ๋“ฑ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ช…๋ น์–ด
  • ์ž๋ฐ” ์„ค์น˜
    •  sudo apt install openjdk-17 -jdk 
    • ์„ค์น˜ ์™„๋ฃŒ ํ›„ ๋ฒ„์ „ ํ™•์ธ   java -version 

 

nginx ์„ค์น˜

  • Cerbot ์„ค์น˜
    • Let's Encrypt๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SSL/TLS ์ธ์ฆ์„œ๋ฅผ ์ž๋™์œผ๋กœ ๋ฐœ๊ธ‰ํ•˜๊ณ  ๊ฐฑ์‹ ํ•˜๋Š” ๋„๊ตฌ
    •  sudo apt install certbot 
  • Certbot Nginx ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜
    • Nginx ์›น ์„œ๋ฒ„์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉฐ, Certbot์„ ์‚ฌ์šฉํ•˜์—ฌ Nginx ์„œ๋ฒ„์— SSL/TLS ์ธ์ฆ์„œ๋ฅผ ์ ์šฉํ•˜๊ณ  ๊ตฌ์„ฑ์„ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ
    •  sudo apt install python3-certbot-nginx 
  • ์—”์ง„์—‘์Šค(nginx) ์›น ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•  Let’s Encrypt์˜ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰
    •  sudo certbot certonly --nginx 
      • ์ฒซ๋ฒˆ์งธ ์ž…๋ ฅ๊ฐ’: ๋„๋ฉ”์ธ์— ์—ฐ๊ฒฐ๋œ ์ด๋ฉ”์ผ์ฃผ์†Œ ex)  test1234@gmail.com 
      • ๋‘๋ฒˆ์งธ ์ž…๋ ฅ๊ฐ’: ๋™์˜  
      • ์„ธ๋ฒˆ์งธ ์ž…๋ ฅ๊ฐ’: Yes  
      • ๋„ค๋ฒˆ์งธ์ž…๋ ฅ๊ฐ’: ๊ตฌ์ž…ํ•œ ๋„๋ฉ”์ธ ex)  riddle-box.com 
  • ์ž…๋ ฅ ์™„๋ฃŒ ํ›„ ์ธ์ฆ์„œ ์ƒ์„ฑ๋จ
    • /etc/letsencrypt/live/๋„๋ฉ”์ธ์ฃผ์†Œ/fullchain.pem
    • /etc/letsencrypt/live/๋„๋ฉ”์ธ์ฃผ์†Œ/privkey.pem
  • ๋‚˜๋…ธ ํŽธ์ง‘๊ธฐ์—์„œ Nginx ์„ค์ • ํŒŒ์ผ ์ˆ˜์ •ํ•˜๊ธฐ
    •  sudo nano /etc/nginx/sites-available/๋„๋ฉ”์ธ์ฃผ์†Œ 
server {
    listen 80;
    server_name ๋„๋ฉ”์ธ.com www.๋„๋ฉ”์ธ.com;
    return 301 https://$host$request_uri; # ๋ชจ๋“  HTTP ์š”์ฒญ์„ HTTPS๋กœ ๋ฆฌ๋””๋ ‰ํŠธ
}

server {
    listen 443 ssl;
    server_name ๋„๋ฉ”์ธ.com www.๋„๋ฉ”์ธ.com;

    ssl_certificate /etc/letsencrypt/live/riddle-box.com/fullchain.pem; # SSL ์ธ์ฆ์„œ
    ssl_certificate_key /etc/letsencrypt/live/riddle-box.com/privkey.pem; # SSL ํ‚ค
    include /etc/letsencrypt/options-ssl-nginx.conf; # ์ถ”๊ฐ€ SSL ์„ค์ •

    location / {
        proxy_pass http://localhost:8080; # Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ํ”„๋ก์‹œ
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  • ์—”์ง„์—‘์Šค ์žฌ์‹œ์ž‘
    •  sudo systemctl restart nginx.service 
  • SSL์ ์šฉ์„ ์œ„ํ•ด์„œ 443 ํฌํฌ์˜ ๋ฐฉํ™”๋ฒฝ ํ•ด์ œํ•˜๊ธฐ
    • ๋ผ์ดํŠธ์„ธ์ผ - ์ธ์Šคํ„ฐ์Šค - ๋„คํŠธ์›Œํฌ ํŒŒํŠธ

 

ํ”„๋กœ์ ํŠธ ๋ฐ ๋„๋ฉ”์ธ ์„ค์ •

  • ํ”„๋กœ์ ํŠธ jar ์‹คํ–‰
    • ํฌํŠธ 8080
  • ๋„๋ฉ”์ธ๊ณผ ์—ฐ๊ฒฐ
    • Rout53์—์„œ ๊ตฌ์ž…ํ•œ ๋„๋ฉ”์ธ์˜ A๋ ˆ์ฝ”๋“œ์— ๋ผ์ดํŠธ์„ธ์ผ ์ธ์Šคํ„ด์Šค IP์ž…๋ ฅํ•ด์„œ ์—ฐ๊ฒฐ

 

 

 

 

  • 80 ํฌํŠธ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ํ™•์ธํ•˜๊ธฐ
    • sudo ss -tuln | grep 80

'๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ > AWS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[AWS] CloudFront - ELB - S3/EC2 ์—ฐ๊ฒฐํ•˜๊ธฐ  (0) 2024.03.21