๐Ÿ’๐Ÿปโ€โ™€๏ธ ์„œ๋ก 

  • 1990๋…„ ์›น์ด ์ฒ˜์Œ ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ์„ ๋•Œ, ์›น์€ ํฌ๊ฒŒ 4๊ฐ€์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์—ˆ๋‹ค. (HTML, URL, Web browser, HTTP)
  • ์ฒ˜์Œ ๋“ฑ์žฅํ•œ HTTP๋Š” ๋งค์šฐ ๋‹จ์ˆœํ•œ ํ†ต์‹  ๊ทœ์น™์ด์˜€์ง€๋งŒ, ์›น์ด ํญ๋ฐœ์ ์œผ๋กœ ์„ฑ์žฅํ•˜๋ฉฐ HTTP๋งŒ์˜ ๊ธฐ๋Šฅ์œผ๋กœ๋Š” ์„ฑ๋Šฅ, ๋ณด์•ˆ, ์•ˆ์ •์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์ด ์ ์  ์–ด๋ ค์›Œ์ ธ HTTP๋Š” ํ’๋ถ€ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ํ”„๋กœํ† ์ฝœ๋กœ ๋ฐœ์ „ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

โœ… HTTP (HyperText Transfer Protocol)

โถ ๊ฐœ๋…

  • ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ํ†ต์‹  ๊ทœ์•ฝ์œผ๋กœ ์ธํ„ฐ๋„ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ ์ด๋‹ค.

    ํ”„๋กœํ† ์ฝœ ์ด๋ž€โ“

    • ํ”„๋กœํ† ์ฝœ์€ ๊ทœ์น™(์•ฝ์†)์ด๋ž€ ์˜๋ฏธ์ด๋‹ค.
    • ๊ทœ์•ฝ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ์ด ๊ทœ์•ฝ์— ๋งž์ถฐ ๊ฐœ๋ฐœํ•˜์—ฌ ์„œ๋กœ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
    • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ(๊ด€๊ณ„๋ง)์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ, ์ด๋Ÿฌํ•œ ๊ทœ์น™์— ๋งž์ถฐ ๊ฐœ๋ฐœํ•จ์œผ๋กœ์จ ์„œ๋กœ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์›น ๋ฌธ์„œ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ๋Š” HTTP๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๊ณ  ํŒŒ์ผ์„ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ๋Š” FTP, ๋ฉ”์ผ์€ SMTP, POP ๋“ฑ ์ „์†ก ๊ณ„์ธต๊ณผ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ ธ์žˆ๋‹ค.

โท ๋™์ž‘

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋Ÿฌ์šฐ์ €๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค์˜ URL์„ ํ†ตํ•˜๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ๊ฒƒ์„ ํ†ตํ•˜์—ฌ ์š”์ฒญ(Requst)ํ•˜๋ฉด, ์„œ๋ฒ„์—์„œ๋Š” ํ•ด๋‹น ์š”์ฒญ์‚ฌํ•ญ์— ๋งž๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์•„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‘๋‹ต(Response)ํ•˜๋Š” ํ˜•ํƒœ๋กœ ๋™์ž‘ํ•œ๋‹ค.

  • HTML๋งŒ HTTP ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ์„œ๋Š” ์•„๋‹ˆ๋‹ค. ( JSON์ด๋‚˜, XML๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์ •๋ณด๋„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.)

โธ ํŠน์ง•

  • TCP/IP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‘์šฉ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

    TCP/IP๋ž€โ“
    ์ปดํ“จํ„ฐ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์žฅ์น˜๋กœ ์›ํ•˜๋Š” ์ •๋ณด(๋ฐ์ดํ„ฐ)๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋Š” ์‘์šฉ ํ”„๋กœํ† ์ฝœ

  • ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.
    (๋‹จ์  ๋ณด์™„์„ ์œ„ํ•ด Cookie์™€ Session์ด ์ƒ๊ฒผ๋‹ค.)
  • ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํ† ์ฝœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์š”์ฒญ/์‘๋‹ต ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

โœ… HTTPS (Hypertext Transfer Protocol Secure)

โถ ๊ฐœ๋…

  • ๊ธฐ๋ณธ ๊ณจ๊ฒฉ์ด๋‚˜, ์‚ฌ์šฉ ๋ชฉ์  ๋“ฑ์€ HTTP์™€ ๋™์ผํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ณผ์ •์— ๋ณด์•ˆ์ด ์ถ”๊ฐ€ ๋˜์–ด์žˆ๋‹ค.
  • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์˜ ๋ชจ๋“  ํ†ต์‹  ๋‚ด์šฉ์ด ์•”ํ˜ธํ™” ๋œ๋‹ค.
  • SSL(Secure Socket Layer) ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

    SSL์ด๋ž€โ“
    ๋ณด์•ˆ ์†Œ์ผ“ ๊ณ„์ธต(Secure Sockets Layer, SSL) ์ธ์ฆ์„œ๋Š” ์ข…์ข… ๋””์ง€ํ„ธ ์ธ์ฆ์„œ๋กœ ๋ถˆ๋ฆฌ๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €(์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ)์™€ ์„œ๋ฒ„(์›น์‚ฌ์ดํŠธ) ์‚ฌ์ด์˜ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฆฝํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

โท ์•”ํ˜ธํ™” ๋ฐฉ์‹

  • ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์œผ๋กœ ๋Œ€์นญํ‚ค๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์„œ๋กœ ๊ณต์œ ๋œ ๋Œ€์นญํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ํ†ต์‹ ํ•œ๋‹ค.

    ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์ด๋ž€โ“

    ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์ด๋ž€โ“

    • ๋™์ผํ•œ ํ‚ค๋กœ ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ๋Œ€์นญํ‚ค๋Š” ๋งค๋ฒˆ ๋žœ๋ค์œผ๋กœ ์ƒ์„ฑ๋˜์–ด ์œ ์ถœ๋˜์–ด๋„ ๋‹ค์Œ ์‚ฌ์šฉ์—์„œ๋Š” ๋‹ค๋ฅธ ํ‚ค๊ฐ€ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•˜๋‹ค.
    • ๊ณต๊ฐœํ‚ค ๋ณด๋‹ค ๋น ๋ฅธ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

โธ ๋™์ž‘

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†์„ ์š”์ฒญ
  2. ์„œ๋ฒ„์—์„œ ๊ณต๊ฐœํ‚ค์™€ ๊ฐœ์ธํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ ๊ณต๊ฐœํ‚ค๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌ
  3. ํด๋ผ์ด์–ธํŠธ๋Š” ๊ณต๊ฐœํ‚ค๋ฅผ ๋ฐ›์•„ ์ž์‹ ๋งŒ์˜ ๋Œ€์นญํ‚ค๋ฅผ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™” ํ•˜์—ฌ ์„œ๋ฒ„์— ์ „๋‹ฌ
  4. ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•œ ํด๋ผ์ด์–ธํŠธ์˜ ๋Œ€์นญํ‚ค๋ฅผ ์„œ๋ฒ„์—์„œ ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™”
  5. ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์•ˆ์ „ํ•œ ๋Œ€์นญํ‚ค๋ฅผ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๊ฐ€์ง€๊ฒŒ ๋˜์–ด ์•ˆ์ „ํ•˜๊ฒŒ ํ†ต์‹ ์ด ๊ฐ€๋Šฅ

๋ณตํ˜ธํ™”๋ž€โ“
์•”ํ˜ธ๋ฌธ์„ ์›๋ž˜ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •


โœ… ๋‘๊ฐ€์ง€์˜ ์ฐจ์ด์ 

  • HTTP
    • ๋ณด์•ˆ์„ฑ์ด ์•ฝํ•˜๋‹ค.
    • ์ ‘์† ๋„์ค‘ ๋Š๊ธฐ๋”๋ผ๋„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์–ด ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์•„ ์ •๋ณด๋ฅผ ๊ฐ€๋กœ์ฑŒ ์ˆ˜ ์žˆ๋Š” ์œ„ํ—˜์ด ์žˆ๋‹ค.
  • HTTPS
    • ๋ณด์•ˆ์„ฑ์ด ๊ฐ•ํ•˜๋‹ค.
    • ์ ‘์†์ด ๋Š๊ธฐ๊ฒŒ ๋˜๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผํ•œ๋‹ค.
    • ์•”ํ˜ธํ™”๋œ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ๊ณผ๋ถ€ํ™”์— ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ… HTTPS ์ ์šฉ ๋ฐฉ๋ฒ•

apache ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

1๏ธโƒฃ ๋„๋ฉ”์ธ

  • https๋ฅผ ์ ์šฉํ•˜๋ ค๋ฉด ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์ธ์ฆ์ด ํ•„์š”ํ•˜๋‹ค.
    ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ณธ์ธ ๋งŒ์˜ ๋„๋ฉ”์ธ์ด ํ•„์š”ํ•˜๋‹ค.

2๏ธโƒฃ SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰

  • ๋ฌด๋ฃŒ ์˜คํ”ˆ ์†Œ์Šค์ธ letsencrypt๋ฅผ ํ†ตํ•ด ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๋Š”๋‹ค.
  • apache, ngnix์™€ ์—ฐ๋™์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • 3๊ฐœ์›” ๋งˆ๋‹ค ๊ฐฑ์‹ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

letsencrypt ์„ค์น˜

sudo apt update
sudo apt-get install  letsencrypt -y

์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ›๊ธฐ

# Obtain and install a certificate:
certbot

# Obtain a certificate but don't install it:
certbot certonly

# You may specify multiple domains with -d and obtain and
# install different certificates by running Certbot multiple times:
certbot certonly -d example.com -d www.example.com
certbot certonly -d app.example.com -d api.example.com

80ํฌํŠธ๋ฅผ ์—ด๊ณ  ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์•„์•ผ ํ•œ๋‹ค.
๋ฐœ๊ธ‰ ๋ฐ›์€ ์ธ์ฆ์„œ๋Š” /etc/letsencrypt/live/ ์— ์ €์žฅ๋œ๋‹ค.

์ธ์ฆ์„œ ํ™•์ธํ•˜๊ธฐ

certbot certificates

์ธ์ฆ์„œ ์‚ญ์ œํ•˜๊ธฐ

certbot delete

์ธ์ฆ์„œ ๊ฐฑ์‹ ํ•˜๊ธฐ

certbot renew

์›น์„œ๋ฒ„์— ์ธ์ฆ์„œ ์—ฐ๋™ํ•˜๊ธฐ

// ๊ธฐ์กด
<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot "var/www/html/"
</VirtualHost>

// ์ˆ˜์ •
<VirtualHost *:80>
    ServerName www.example.com
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://www.example.com%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
    ServerName www.example.com
    DocumentRoot "/var/www/html/"

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/www.example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem

</VirtualHost>

๊ธฐ์กด์— ์—ด๋ ค์žˆ๋˜ ์„œ๋ฒ„์˜ conf๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•œ๋‹ค.
์ˆ˜์ • ๋‚ด์šฉ์— ์žˆ๋Š” RewriteEngine ๋Š” ํฌํŠธ 80์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” request๋ฅผ 443ํฌํŠธ(HTTPS)๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

profile
#UXUI #์ฝ”๋ฆฐ์ด

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

comment-user-thumbnail
2023๋…„ 4์›” 2์ผ

์•ˆ๋…•ํ•˜์„ธ์š”, ์ œ๋กœ๋ฒ ์ด์Šค ํ”„๋ก ํŠธ์—”๋“œ์Šค์ฟจ ๋ฉ˜ํ† ์ž…๋‹ˆ๋‹ค. ์ž‘์„ฑํ•ด์ฃผ์‹  ๊ธ€ ์ž˜ ์ฝ์—ˆ๊ณ , ์•ž์œผ๋กœ์˜ ๋” ๋‚˜์€ ๋ธ”๋กœ๊น…์„ ์‘์›ํ•˜๋Š” ๋งˆ์Œ์—์„œ ์ž‘์€ ์˜๊ฒฌ์„ ๋‚จ๊ธฐ๊ณ  ๊ฐ‘๋‹ˆ๋‹ค :)

  • ์ „์ฒด์ ์œผ๋กœ ์ •๋ง ์ž˜ ์ดํ•ดํ•˜๊ณ  ์˜ค๋ฅ˜์—†์ด ์ž˜ ์ž‘์„ฑํ•ด์ฃผ์…จ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœํ† ์ฝœ๋ถ€ํ„ฐ ํ•œ ๋‹จ๊ณ„์”ฉ ๊ฐœ๋…์„ ์งš์–ด๊ฐ€๋ฉด์„œ ์„ค๋ช…ํ•ด์ฃผ์‹  ์ ์ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ์ด ์ฃผ์ œ์— ๋Œ€ํ•ด ๊ผผ๊ผผํ•˜๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•ด์ฃผ์‹  ๊ฒƒ์ด ๋А๊ปด์กŒ์Šต๋‹ˆ๋‹ค.
  • ์ œ๋ชฉ๊ณผ ์†Œ์ œ๋ชฉ์„ ์ž˜ ๋‹ฌ์•„์ฃผ์‹œ๊ณ , Indexing ๋“ฑ์„ ์ž˜ ํ•ด์ฃผ์…”์„œ ๊ธ€์˜ ๊ตฌ์„ฑ๊ณผ ๊ฐ€๋…์„ฑ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • HTTPS๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฒ•์€ ์‚ฌ์‹ค ๋ฐฑ์—”๋“œ์— ๊ฐ€๊นŒ์šด ๋‚ด์šฉ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์ƒ˜ํ”Œ์ฝ”๋“œ๊นŒ์ง€ ๊ผผ๊ผผํ•˜๊ฒŒ ์ •๋ง ์ž˜ ์ •๋ฆฌํ•ด์ฃผ์…”์„œ ์ •์„ฑ์ด ๋А๊ปด์ ธ์„œ ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
  • ์ฐธ๊ณ ํ•˜์‹  ๋งํฌ๊ฐ€ ์žˆ๋‹ค๋ฉด, ํ•˜๋‹จ์— ์ฐธ๊ณ  ๋งํฌ๋ฅผ ์ ์–ด์„œ, ์™ธ๋ถ€์˜ ์ž๋ฃŒ์—์„œ ๊ฐ€์ ธ์˜จ ๋‚ด์šฉ๊ณผ ๋‚ด๊ฐ€ ์ฃผ๋„์ ์œผ๋กœ ํ•™์Šตํ•˜๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ด ๋“œ๋Ÿฌ๋‚  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ