FastAPI ์ธํ๋ผ ๊ตฌ์ถ๊ธฐ: ํด๋ผ์ฐ๋ํ๋ ์ด ๋ฌดํ ๋ฆฌ๋ค์ด๋ ํธ(ERR_TOO_MANY_REDIRECTS) ์์ธ๊ณผ SSL/TLS ์๋ฒฝ ํด๊ฒฐ
์๋ ํ์ธ์! ์พ์ ํ๊ณ ์์ ํ ์น ์ํ๊ณ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๋งค์ผ๊ฐ์ด ์๋ฒ ์ธํ๋ผ์ ์ฌํฌ๋ฅผ ๋ฒ์ด๊ณ ์๋ 1์ธ ๊ฐ๋ฐ์์ ๋๋ค.
์น์ฌ์ดํธ ๊ฐ๋ฐ์ ๋ง์น๊ณ ๋๋ฉด ๋๊ตฌ๋ ๊ฒช๋ ๊ฐ์ด ๋จ๋ฆฌ๋ ์๊ฐ์ด ์์ต๋๋ค. ๋ฐ๋ก ๋๋ฉ์ธ์ ์ฐ๊ฒฐํ๊ณ ์ค์ ์ธํฐ๋ท ์ธ์์ ๋ด ์ฌ์ดํธ๋ฅผ ์คํํ๋ ์๊ฐ์ด์ฃ . ์ ๋ ์ฌ์ดํธ์ ์๋ ์ต์ ํ์ ๋๋์ค(DDoS) ๋ฐฉ์ด๋ฅผ ์ํด ๋๋ฉ์ธ ๋ค์์๋ฒ๋ฅผ ํด๋ผ์ฐ๋ํ๋ ์ด(Cloudflare)๋ก ์ฐ๊ฒฐํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ตฌ๊ธ ์ ๋์ผ์ค ํฉ๊ฒฉ ์ฒดํฌ๋ฆฌ์คํธ์ ํ์ ํญ๋ชฉ์ธ 'HTTPS(SSL ์ธ์ฆ์) ์ ์ฉ'์ ์ํด ๋ฐฑ์๋ ์๋ฒ(Nginx)์ HTTP ์ ์ ์ HTTPS๋ก ๊ฐ์ ์ด๋ํ๋๋ก ๋ผ์ฐํ ์ ์ธํ ํ์ต๋๋ค.
๋ชจ๋ ๊ฒ์ด ์๋ฒฝํ๋ค๊ณ ์๊ฐํ๋ฉฐ ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ ์ ์ ๋๋ฉ์ธ์ ์ ๋ ฅํ๊ณ ์ํฐ๋ฅผ ์ณค์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ํ๋ คํ ๋ฉ์ธ ํ๋ฉด ๋์ , ์ ๋ฅผ ๋ฐ๊ฒจ์ค ๊ฒ์ ํ์ ๋ฐํ์ ์ ๋ง์ ์ธ ์๋ฌ ๋ฉ์์ง์์ต๋๋ค.
ERR_TOO_MANY_REDIRECTS(ํด๋น ์นํ์ด์ง์์ ๋ฆฌ๋๋ ์ ํ ํ์๊ฐ ๋๋ฌด ๋ง์ต๋๋ค.)
๋ก๊ทธ๋ฅผ ํ์ธํด๋ณด๋ ์๋ฒ๊ฐ ์ฃฝ์ ๊ฒ๋ ์๋์๊ณ , ํ์ด์ฌ ์ฝ๋์ ๋ฒ๊ทธ๊ฐ ์๋ ๊ฒ๋ ์๋์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ์ ์๋ฒ ์ฌ์ด์์ ๋๊ตฐ๊ฐ๊ฐ ๊ณ์ํด์ "์ ๊ธฐ๋ก ๊ฐ!", "์๋ ๋ค์ ์ด๋ฆฌ๋ก ๊ฐ!" ๋ผ๋ฉฐ ๋ฌดํ ํํ ๊ฒ์์ ํ๊ณ ์์๋ ๊ฒ์ ๋๋ค.
1. ๋ฌดํ ๋ฃจํ์ ๋ฒ์ธ: ํด๋ผ์ฐ๋ํ๋ ์ด์ '๊ฐ๋ณ(Flexible)' ๋ชจ๋
์ด ์น๋ช ์ ์ธ ์ค๋ฅ์ ์์ธ์ ์ฐพ๊ธฐ ์ํด ์ ๋ ๋คํธ์ํฌ ์์ฒญ์ ํ๋ฆ์ ํ๋์ฉ ๋ฏ์ด๋ณด์์ต๋๋ค. ๋ฒ์ธ์ ๋ฐ๋ก ํด๋ผ์ฐ๋ํ๋ ์ด์ ๋ํดํธ(๊ธฐ๋ณธ) ์ค์ ์ธ '๊ฐ๋ณ(Flexible)' SSL ๋ชจ๋์ ์ ์๋ฒ์ ๋ณด์ ์ค์ ์ด ์ผ์ผํจ ํ์ฅ์ ์ฝ๋ผ๋ณด๋ ์ด์ ์ด์์ต๋๋ค.
์ด ๋ฌดํ ๋ฃจํ๊ฐ ๋ฐ์ํ๋ ๋์ฐํ ์๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ์ ์ ์ ์: ๋ฐฉ๋ฌธ์๊ฐ
https://(๋ณด์) ์ฃผ์๋ก ์ ์ฌ์ดํธ์ ์ ์ํฉ๋๋ค.ํด๋ผ์ฐ๋ํ๋ ์ด์ ์ฒ๋ฆฌ: ํด๋ผ์ฐ๋ํ๋ ์ด๊ฐ ์ด ์์ฒญ์ ๋ฐ์ต๋๋ค. '๊ฐ๋ณ(Flexible)' ๋ชจ๋๋ "์ ์ ์ ๋(CF) ์ฌ์ด๋ ์ํธํ(HTTPS)๋ฅผ ํ์ง๋ง, ๋์ ์๋ณธ ์๋ฒ(Nginx) ์ฌ์ด๋ ๊ทธ๋ฅ ์ผ๋ฐ ํต์ (HTTP)์ ํ๊ฒ ๋ค"๋ ์ค์ ์ ๋๋ค. ๋ฐ๋ผ์ ํด๋ผ์ฐ๋ํ๋ ์ด๋ ์ ์๋ฒ์ HTTP(80ํฌํธ)๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฒญํฉ๋๋ค.
์๋ณธ ์๋ฒ์ ์๋ต: ์ Nginx ์๋ฒ๋ "์ด? ๋ ์ ๋ณด์ ์ ๋ HTTP๋ก ๋ค์ด์? ๋น์ฅ HTTPS๋ก ๋ค์ ์ ์ํด!" ๋ผ๋ฉฐ 301 ๋ฆฌ๋ค์ด๋ ํธ ๋ช ๋ น์ ๋ด๋ ค ํด๋ผ์ฐ๋ํ๋ ์ด์๊ฒ ๋๋ ค๋ณด๋ ๋๋ค.
๋ฌดํ ๋ฃจํ ๋ฐ์: ํด๋ผ์ฐ๋ํ๋ ์ด๋ ์๋ฒ์ ๋ช ๋ น๋๋ก ๋ค์
https://๋ก ์ ์์ ์๋ํ์ง๋ง, '๊ฐ๋ณ' ๋ชจ๋ ๊ท์น์ ๋ฐ๋ผ ๋๋ค์ ์ ์๋ฒ์๋ HTTP๋ก ์์ฒญ์ ๋์ง๋๋ค.
์๋ฒ๋ ๊ณ์ HTTPS๋ก ๊ฐ๋ผ๊ณ ์ซ์๋ด๊ณ , ํด๋ผ์ฐ๋ํ๋ ์ด๋ ๊ณ์ HTTP๋ก ๋ฌธ์ ๋๋๋ฆฌ๋ ์ด ๋ฐ๋ณด ๊ฐ์ ๊ณผ์ ์ด 1์ด์ ์์ญ ๋ฒ ๋ฐ๋ณต๋๋ค๊ฐ ๋ธ๋ผ์ฐ์ ๊ฐ ๊ฒฐ๊ตญ ERR_TOO_MANY_REDIRECTS ์๋ฌ๋ฅผ ๋ฟ์ผ๋ฉฐ ๋ป์ด๋ฒ๋ฆฐ ๊ฒ์
๋๋ค.
2. ๋จ 3๋ฒ์ ํด๋ฆญ์ผ๋ก ์ธํ๋ผ๋ฅผ ์ ์ํํ๋ค
๋ฌธ์ ์ ์์ธ(๋คํธ์ํฌ ํ๋กํ ์ฝ์ ๋ถ์ผ์น)์ ์ ํํ ํ์ ํ์ผ๋, ํด๊ฒฐ์ฑ ์ ์์ฃผ ๋ช ํํ์ต๋๋ค. ํด๋ผ์ฐ๋ํ๋ ์ด๊ฐ ์ ์๋ฒ์ HTTP๋ก ์ฐ๋ฌ๋ณด๋ ๊ฒ์ ๋ฉ์ถ๊ฒ ํ๋ฉด ๋ฉ๋๋ค.
์ ๋ ์ฆ์ ํด๋ผ์ฐ๋ํ๋ ์ด ๋์๋ณด๋์ ์ ์ํ์ฌ ์ค์ ์ ๋ณ๊ฒฝํ์ต๋๋ค.
์ข์ธก ๋ฉ๋ด์์ [SSL/TLS] โก๏ธ [Overview (๊ฐ์)] ํญ์ผ๋ก ์ด๋ํฉ๋๋ค.
SSL/TLS ์ํธํ ๋ชจ๋๊ฐ '๊ฐ๋ณ(Flexible)'์ผ๋ก ๋์ด ์๋ ๊ฒ์ ํ์ธํ์ต๋๋ค.
์ด๊ฒ์ '์ ์ฒด(Full)' ๋๋ '์ ์ฒด(์๊ฒฉ) (Full Strict)' ๋ชจ๋๋ก ํด๋ฆญํ์ฌ ๋ณ๊ฒฝํด ์ค๋๋ค.
'์ ์ฒด(Full)' ๋ชจ๋๋ก ๋ณ๊ฒฝํ๋ ์๊ฐ, ๊ธฐ์ ์ฒ๋ผ ๋ง๋ฒ์ด ์ผ์ด๋ฌ์ต๋๋ค. ํด๋ผ์ฐ๋ํ๋ ์ด๊ฐ ๋ ์ด์ ์ ์๋ฒ์ HTTP๋ก ์ ๊ทผํ์ง ์๊ณ , ์ ์ ๊ฐ ์์ฒญํ ๊ทธ๋๋ก HTTPS(443 ํฌํธ)๋ก ์ํธํํ์ฌ ํต์ ํ๊ธฐ ์์ํ ๊ฒ์ ๋๋ค. ์ ์๋ณธ ์๋ฒ(Nginx) ์ญ์ ์ํธํ๋ ์์ฒญ์ ๋ฐ์๊ธฐ์ ๋ ์ด์ ๋ฆฌ๋ค์ด๋ ํธ๋ฅผ ์ํค์ง ์๊ณ ์ ์์ ์ธ FastAPI ๋ฐฑ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ์ต๋๋ค.
์ง๊ธ์ง๊ธํ๋ ์๋ฌ ์ฐฝ์ด ์ฌ๋ผ์ง๊ณ , ์ฃผ์์ฐฝ ์ผ์ชฝ์ ์๋กฑํ ์๋ฌผ์ ๋งํฌ(๋ณด์ ์ฐ๊ฒฐ)์ ํจ๊ป 0.1์ด ๋ง์ ์ปค๋ฎค๋ํฐ ๋ฉ์ธ ํ๋ฉด์ด ๋ด์ ๋์ ์พ๊ฐ์ ์ด๋ฃจ ๋งํ ์ ์์์ต๋๋ค.
๋งบ์ผ๋ฉฐ: E-E-A-T์ ๋ณด์, ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ์ก๋ค
์น์ฌ์ดํธ๋ฅผ ์ง์ ํธ์คํ ํ๊ณ ์ด์ํ๋ 1์ธ ๊ฐ๋ฐ์์๊ฒ ์ธํ๋ผ ํธ๋ฌ๋ธ์ํ ์ ํผํ ์ ์๋ ํต๊ณผ์๋ก์ ๋๋ค.
ํนํ 2026๋ ๊ตฌ๊ธ ์ ๋์ผ์ค์ ์ฌ์ฌ ๊ธฐ์ค(E-E-A-T)๊ณผ ๊ฒ์์์ง ์ต์ ํ(SEO) ์๊ณ ๋ฆฌ์ฆ์ '์์ ํ ๋ธ๋ผ์ฐ์ง ํ๊ฒฝ(HTTPS)'์ ์น์ฌ์ดํธ ์ ๋ขฐ๋์ ์ต์ฐ์ ์ฒ๋๋ก ์ผ๊ณ ์์ต๋๋ค. ๋จ์ํ ์ธ์ฆ์๋ง ๋ฐ๊ธ๋ฐ๋ ๊ฒ์ ๊ทธ์น์ง ์๊ณ , ํด๋ผ์ด์ธํธ๋ถํฐ ์๋ณธ ์๋ฒ๊น์ง ๋ฐ์ดํฐ๊ฐ ์ด๋ํ๋ ๋ชจ๋ ๊ตฌ๊ฐ(End-to-End)์ ์ํธํ ๋ชจ๋๋ฅผ ํต์ผํ๋ ๊ฒ์ ์ ํ์ด ์๋ ํ์์ ๋๋ค.
๋ง์ฝ ์ง๊ธ ์น์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ๋ค๊ฐ ์ด์ ์๋ ๋ฆฌ๋ค์ด๋ ํธ ๋ฌดํ ๋ฃจํ์ ๋น ์ ธ ๊ณ์ ๋ค๋ฉด, ๋ฐฑ์๋ ์ฝ๋์ ๋ฒ๊ทธ๋ฅผ ์ฐพ๊ธฐ ์ ์ ํด๋ผ์ฐ๋ํ๋ ์ด์ SSL ๋ชจ๋๊ฐ '๊ฐ๋ณ(Flexible)'์ด๋ผ๋ ํจ์ ์ ๋น ์ ธ ์์ง๋ ์์์ง ๊ฐ์ฅ ๋จผ์ ์ ๊ฒํด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค!
โ ์์ฃผ ๋ฌป๋ ์ง๋ฌธ (FAQ)
Q1. '์ ์ฒด(Full)' ๋ชจ๋์ '์ ์ฒด ์๊ฒฉ(Full Strict)' ๋ชจ๋์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
A. ๋ ๋ชจ๋ ๋ชจ๋ ํด๋ผ์ฐ๋ํ๋ ์ด์ ์๋ณธ ์๋ฒ ๊ฐ์ HTTPS๋ก ํต์ ํ๋ค๋ ์ ์ ๊ฐ์ต๋๋ค. ์ฐจ์ด์ ์ ์ธ์ฆ์์ '๊ฒ์ฆ' ์ฌ๋ถ์ ๋๋ค. '์ ์ฒด' ๋ชจ๋๋ ์๋ณธ ์๋ฒ์ ์ค์น๋ ์ธ์ฆ์๊ฐ ์ ํจ ๊ธฐ๊ฐ์ด ์ง๋ฌ๊ฑฐ๋ ์์ฒด ์๋ช ๋(Self-signed) ๊ฐ์ง ์ธ์ฆ์๋ผ๋ ๋ฌด์กฐ๊ฑด ํต๊ณผ์ํต๋๋ค. ๋ฐ๋ฉด '์ ์ฒด ์๊ฒฉ' ๋ชจ๋๋ Let's Encrypt๋ ํด๋ผ์ฐ๋ํ๋ ์ด์์ ๊ณต์ ๋ฐ๊ธํ ์ ๋ขฐํ ์ ์๋ ์ธ์ฆ์๊ฐ ์๋ฒ์ ์ค์น๋์ด ์์ด์ผ๋ง ํต์ ์ ํ์ฉํ๋ ๊ฐ์ฅ ๊ฐ๋ ฅํ๊ณ ์์ ํ ๋ณด์ ๋ชจ๋์ ๋๋ค.
Q2. ์ ์๋ณธ ์๋ฒ(Nginx)์๋ ์์ง SSL ์ธ์ฆ์๊ฐ ์๋๋ฐ ์ด๋กํ์ฃ ?
A. ์๋ณธ ์๋ฒ์ ์ธ์ฆ์๊ฐ ์๋ค๋ฉด ์์๋ก '๊ฐ๋ณ(Flexible)' ๋ชจ๋๋ฅผ ์จ์ผ ํ์ง๋ง, ๋ฌดํ ๋ฃจํ๋ฅผ ๋ง์ผ๋ ค๋ฉด ์๋ฒ(Nginx) ์ชฝ์ HTTPS ๊ฐ์ ๋ฆฌ๋ค์ด๋ ํธ ์ฝ๋๋ฅผ ์ง์์ผ ํฉ๋๋ค. ๊ฐ์ฅ ์ถ์ฒํ๋ ๋ฐฉ๋ฒ์ ํด๋ผ์ฐ๋ํ๋ ์ด ๋์๋ณด๋์ [SSL/TLS] -> [Origin Server] ๋ฉ๋ด์์ 15๋
์ง๋ฆฌ ๋ฌด๋ฃ '์๋ณธ ์ธ์ฆ์'๋ฅผ ๋ฐ๊ธ๋ฐ์ ์๋ฒ์ ์ค์นํ ๋ค, '์ ์ฒด ์๊ฒฉ' ๋ชจ๋๋ก ์ด์ํ๋ ๊ฒ์
๋๋ค.
Q3. ์ค์ ์ '์ ์ฒด(Full)'๋ก ๋ฐ๊ฟจ๋๋ฐ๋ ๊ณ์ ์๋ฌ๊ฐ ๋น๋๋ค!
A. ๋ธ๋ผ์ฐ์ ์ ๊ณผ๊ฑฐ์ ๋ฌดํ ๋ฃจํ ๊ธฐ๋ก์ด ๊ฐ๋ ฅํ๊ฒ ์บ์(Cache)๋์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ์ค์ ์์ '์ธํฐ๋ท ์ฌ์ฉ ๊ธฐ๋ก ์ญ์ (์บ์๋ ์ด๋ฏธ์ง ๋ฐ ํ์ผ)'๋ฅผ ์ง์ฐ์๊ฑฐ๋, ํฌ๋กฌ ์ํฌ๋ฆฟ ๋ชจ๋(Ctrl+Shift+N)๋ฅผ ์ด์ด์ ์ ์ํด ๋ณด์๋ฉด ์ ์์ ์ผ๋ก ์ฌ์ดํธ๊ฐ ์ด๋ฆฌ๋ ๊ฒ์ ํ์ธํ์ค ์ ์์ต๋๋ค.
๐ฌ ๋๊ธ 0๊ฐ