
์๋
ํ์ธ์. ์๋ฆฌ์
๋๋ค ๐
์ด๋ฒ ๊ธ์์๋ ์ค์นํ code-server์ TLS ์ธ์ฆ์๋ฅผ ์ ์ฉํด HTTPS๋ก ์ฐ๊ฒฐํ ์ ์๋๋ก ํด ๋ณผ๊ฒ์.
code-server ์ค์น์ ๊ด๋ จํ ๋ด์ฉ์ ์ง๋ ๊ธ์ ์ฐธ๊ณ ํด ์ฃผ์ธ์.
์ง๊ธ๊น์ง ์ค์ ํ code-server๋ http ํ๋กํ ์ฝ์ ์ฌ์ฉํด์.
http ํ๋กํ ์ฝ์ ์ํธํ ์๋ ํต์ ๋ฐฉ๋ฒ์ด์ด์ ์ธ๋ถ๋ง์์ ์ฌ์ฉํ๊ธฐ์๋ ์ ์ ํ์ง ์์ฃ .
nginx๋ฅผ ์ด์ฉํด https๋ฅผ ์ฌ์ฉํ๋๋ก ๋ง๋ค์ด ๋ณผ๊ฒ์.
nginx๋ ์น ์๋ฒ ์ํํธ์จ์ด์
๋๋ค.
์ด ํ๋ก๊ทธ๋จ์๋ ๋ฆฌ๋ฒ์ค ํ๋ก์, ๋ก๋ ๋ฐธ๋ฐ์ ๋ฑ์ ๋ค์ํ ๊ธฐ๋ฅ์ด ์์ด์.
code-server์ ์ด ๊ธฐ๋ฅ์ ์ ์ฉํ ์ ์๊ฒ nginx๋ฅผ ์ค์นํ ๊ฒ์.
# nginx ์ค์น
> apt install nginx
# nginx ์๋ ํ์ธ
> systemctl status nginx.service

์ค์น๊ฐ ์๋ฃ๋๊ณ ์ ์ ๋์ํ๋ค๋ฉด, http๋ก ์ ์ ์ ๊ธฐ๋ณธ ํ์ด์ง๋ฅผ ๋ณผ ์ ์์ด์.

nginx์ ๋ฆฌ๋ฒ์ค ํ๋ก์ ๊ธฐ๋ฅ์ ์ด์ฉํด ๋๋ฉ์ธ๊ณผ TLS ์ธ์ฆ์ ์ ์ฉ์ ์งํํ ๊ฒ์.
์ด ๊ธ์์๋ Cloudflare์์ ๋ฑ๋กํ ๋๋ฉ์ธ๊ณผ ๋ฐ๊ธ๋ ์ธ์ฆ์๋ก ์งํํ์ด์.
โน๏ธ ๋๋ฉ์ธ ์ ๊ณต์์ TLS ์ธ์ฆ์ ์๋น์ค ์ด์ฉ์ด ์ด๋ ต๋์?
๋ฌด๋ฃ๋ก TLS ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์ ์ ์๋ CertBot์ ์ด์ฉํ ์ ์์ด์.
๋น์ฉ์ด ๋ถ๋ด์ค๋ฝ๊ฑฐ๋ ์๋ ๋ฑ์ ์ด์ ๋ก ํ๋ก์ฑ์ ํผํ๊ณ ์ถ์ ๊ฒฝ์ฐ CertBot ์ด์ฉ์ ์ถ์ฒํด์.
Cloudflare ๋๋ฉ์ธ ๊ด๋ฆฌ ํ๋ฉด์์ DNS ๋ฉ๋ด์์ ์๋ฒ๋ก ์ด์ด์ง๋ ๋ ์ฝ๋๋ฅผ ๋ง๋ค์ด ์ฃผ์ธ์.
๋ ์ฝ๋๋ฅผ ๋ง๋ค ๋, ๋ ์ฝ๋์ ํ๋ก์ฑ ์ต์
์ ์ผฌ์ผ๋ก ์ค์ ํด์ผ ํด์.
์ดํ SSL/TLS ์ํธํ๋ฅผ ์ ์ฒด ๋๋ ์ ์ฒด(์๊ฒฉ)์ผ๋ก ์ค์ ํด ์ฃผ์ธ์.

์ด์ ์๋ณธ ์๋ฒ ๋ฉ๋ด์์ ์ธ์ฆ์๋ฅผ ์์ฑํ ๊ฒ์.
์๋ณธ ์ธ์ฆ์๋ฅผ ์์ฑํ๋ฉด ๋ค์ ์ด๋ฏธ์ง์ฒ๋ผ ์ธ์ฆ์๊ฐ ๋ฐ๊ธ๋ผ์.

์ด์ ์ธ์ฆ์๋ฅผ ์๋ฒ์ ์ ์ฉํด๋ณผ๊ฒ์.
์ ๋ nginx ๋๋ ํฐ๋ฆฌ ๋ด๋ถ์ ํค๋ฅผ ๋ฃ์์ด์.
๐จ ์ฃผ์!
ํค๋ ์ ๋๋ก ์ ์ถ๋๋ฉด ์ ๋ผ์!
๊ผญ ์์ ์๋ฅผ ๋ฃจํธ ์ ์ ๋ก ํ๊ณ , ๋ฃจํธ ๊ถํ์ด ์์ผ๋ฉด ์ฝ์ ์ ์๋๋ก ๋ง๋ค์ด์ผ ํด์.

/etc/nginx/sites-available ๋๋ ํฐ๋ฆฌ ๋ด๋ถ์ ํ์ผ์ ํ๋ ๋ง๋ค์ด์.
์ ๋ code-server๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ง๋ค์์ด์.
server {
listen 443 ssl;
server_name example.com; # ์ฌ์ฉํ ๋๋ฉ์ธ ์
๋ ฅ
ssl_certificate /etc/nginx/.key/cert.pub; # ํค ์ ์ฅํ ์์น ์
๋ ฅ
ssl_certificate_key /etc/nginx/.key/cert.priv;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:8443;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

/etc/nginx/sites-enabled๋ก ์ด๋ํด์ ์๊น ๋ง๋ ํ์ผ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ง๋ค์ด์.
# sites-enabled ๋๋ ํฐ๋ฆฌ์ ๋งํฌ ์์ฑ
> cd ../sites-enabled
> ln -s ../sites-available/code-server
# ๊ธฐ๋ณธ ํ์ด์ง ๋งํฌ ์ญ์
> rm default

์ง๊ธ๊น์ง ์
๋ ฅํ๋ nginx ์ค์ ํ์ผ์ด ๋ฌธ์ ์๋์ง ๊ฒ์ฌํ ํ nginx๋ฅผ ์ฌ์์ํด์.
> nginx -t
> systemctl restart nginx.service

์ด์ https์ผ๋ก ์์ํ๋ ๋๋ฉ์ธ ์ฃผ์๋ก ์ ์ํ๋ฉด ์ํธํ๊ฐ ์ ์ฉ๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.

๋ ์ฐจ๋ก์ ๊ฑธ์ณ code-server ์ค์ ์ ์งํํด ๋ณด์์ด์.
์ง๊ธ๊น์ง ์ ๋ฐ๋ผ์ค์
จ๋ค๋ฉด, ์ด์ ์ธํฐ๋ท ์ฐ๊ฒฐ๋ง ๋๋ค๋ฉด ์ด๋์๋ ๊ฐ์ ํ๊ฒฝ์์ ๊ฐ๋ฐํ ์ ์์ ๊ฑฐ์์.
์ฌ๋ฌ๋ถ๋ค์ด code-server๋ฅผ ํตํด ๋์ฑ ํธ๋ฆฌํ ๊ฐ๋ฐ ์ํ์ ํ ์ ์๊ฒ ๋๊ธฐ๋ฅผ ๊ธฐ๋ํ ๊ฒ์!
โ ์ง๊ธ๊น์ง ํ ์ผ
- docker-compose๋ก code-server ์ปจํ ์ด๋ ๊ตฌ์ฑํ๊ธฐ
- ๋ฐฉํ๋ฒฝ ์ค์ ์ผ๋ก ์ธ๋ถ ์ ์ ํ์ฉํ๊ธฐ
- ์น ๋ธ๋ผ์ฐ์ ์์ code-server ์ ์ ํ์ธํ๊ธฐ
- TLS ์ธ์ฆ์ ์ ์ฉํ๊ธฐ
- HTTPS๋ก ์ ์ํ ์ ์๋๋ก ๋ง๋ค๊ธฐ