๐ CKA 11์ผ์ฐจ
๐ Udemy-Certified Kubernetes Administrator (CKA) with Practice Tests 129-143
๋ฆฌ์์ค ๊ตฌ์ฑ์ ๋ฐฑ์
ํ๋ ๋ ๋์ ๋ฐฉ๋ฒ์ kube-api server๋ฅผ ์ฟผ๋ฆฌํ๋ ๊ฒ์ด๋ค.
kubectl
์ ์ด์ฉํด kube-api server์ ์ง์ ์ ๊ทผํจ์ผ๋ก์จ ํด๋ฌ์คํฐ์ ์์ฑ๋ ๋ชจ๋ ๊ฐ์ฒด์ ๋ํ ๋ฆฌ์์ค ๊ตฌ์ฑ์ ๋ณต์ฌํด ์ ์ฅํ ์ ์๋ค.
kubectl get all --all-namespaces -o yaml > all-deploy-services.yaml
๋ช
๋ น์ด๋ฅผ ์ด์ฉํด ๋ชจ๋ ๋ค์์คํ์ด์ค์ ์๋ ํ๋, ๋ํ๋ก์ด๋จผํธ, ์๋น์ค๋ฅผ YAML ํ์์ผ๋ก ํ์ผ์ ์ถ์ถํ๊ณ ์ ์ฅํ ์ ์๋ค.
์ด๋ ์ผ๋ถ ๋ฆฌ์์ค ๊ทธ๋ฃน์ ์ํ ๊ฒ์ด๋ค. ๊ทธ ์ธ์ ๋ค๋ฅธ ๋ฆฌ์์ค๋ค์ ๊ณ ๋ คํ๊ธฐ ์ํด HeptIO์์ VELERO๋ผ๊ณ ๋ถ๋ฅด๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ค.
ETCD๋ ์ฐ๋ฆฌ ํด๋ฌ์คํฐ ์ํ์ ๊ดํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค.
ํด๋ฌ์คํฐ ์์ฒด์ ๊ดํ ์ ๋ณด์ ๋
ธ๋ ๋ฐ ํด๋ฌ์คํฐ ๋ด๋ถ์์ ์์ฑ๋ ๋ชจ๋ ๋ฆฌ์์ค๊ฐ ์ฌ๊ธฐ ์ ์ฅ๋๋ค.
๊ทธ๋์ ๋ฆฌ์์ค๋ฅผ ๋ฐฑ์
ํ๋ ๋์ ETCD ์๋ฒ ์์ฒด๋ฅผ ๋ฐฑ์
ํ๋ ๊ฒ์ ์ ํํ ์ ์๋ค.
ETCD ํด๋ฌ์คํฐ๋ ๋ง์คํฐ ๋
ธ๋์ ํธ์คํธ๋์ด ์๋ค.
ETCD ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ ๋ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ์ฅ์(/var/lib/etcd)๋ฅผ ๋ช
์ํ๋ค.
ETCD๋ ๋นํธ์ธ ์ค๋
์ท ์๋ฃจ์
๋ ์ง์ํ๋ค.
etcdctl snapshot save
๋ช
๋ น์ด๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋
์ท์ ์ฐ์ ์ ์๋ค.
์ค๋
์ท ํ์ผ์ ํ์ฌ ๋๋ ํฐ๋ฆฌ์ ์ด๋ฆ์ผ๋ก ์์ฑ๋๋ค. ๋ค๋ฅธ ๊ฒฝ๋ก์ ์์ฑํ๊ณ ์ถ๋ค๋ฉด ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ๋ช
์ํ๋ฉด ๋๋ค.
etcdctl snapshot status
๋ช
๋ น์ด๋ฅผ ์ด์ฉํด ๋ฐฑ์
์ ์ํ๋ฅผ ๋ณผ ์ ์๋ค.
๋์ค์ ์ด ๋ฐฑ์
์์ ํด๋ฌ์คํฐ๋ฅผ ๋ณต์ํ๋ ค๋ฉด ๋จผ์ kube-api server ์๋น์ค๋ฅผ ์ค๋จํด์ผ ํ๋ค.
๋ณต์ํ๊ธฐ ์ํด ETCD ํด๋ฌ์คํฐ๋ฅผ ๋ค์ ์์ํด์ผ ํ๋๋ฐ kube-api server๊ฐ ETCD์ ์์กดํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ฐ ๋ค์ etcdctl snapshot restore
๋ช
๋ น์ด์ ๋ฐฑ์
ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ์ฌ ์คํํ๋ฉด ๋๋ค.
ETCD๊ฐ ๋ฐฑ์
์์ ๋ณต๊ตฌํ ๋ ์ ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ ์ด๊ธฐํํ๊ณ ETCD์ ๋ฉค๋ฒ๋ฅผ ์ ํด๋ฌ์คํฐ์ ์ ๋ฉค๋ฒ๋ก ๊ตฌ์ฑํ๋ค. ์ด๋ ์ ๋ฉค๋ฒ๊ฐ ์ค์๋ก ๊ธฐ์กด์ ํด๋ฌ์คํฐ์ ํฉ๋ฅํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํด์์ด๋ค.
์ด ๋ช
๋ น์ ์คํํ๋ฉด ์๋ก์ด ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ฑ๋๋ค.
๊ทธ๋ฐ ๋ค์ ETCD ๊ตฌ์ฑ ํ์ผ์ ๊ตฌ์ฑํด ์ ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
๊ทธ๋ฐ ๋ค์ ๋ฐ๋ชฌ ์๋น์ค๋ฅผ ๋ค์ ๋ก๋ํ๊ณ ์ฌ์์ํด์ผ ํ๋ค.
๋ง์ง๋ง์ผ๋ก kube-api server ์๋น์ค๋ฅผ ์์ํด์ผ ํ๋ค.
์ด์ ํด๋ฌ์คํฐ๊ฐ ์๋ ์ํ๋ก ๋์์์ ๊ฒ์ด๋ค.
์ค๋
์ท์ ์ ์ฅํ ๋ ๋ช
๋ น์ด์ ํจ๊ป '--endpoint','--cacert', '--cert', '--key' ์ต์
์ ์ง์ ํ๋ ๊ฒ์ ๊ธฐ์ตํด๋ผ
๊ฒฐ๋ก ์ ์ผ๋ก ๋ฐฑ์
์ ์ํด ๋ ๊ฐ์ง ์ต์
์ด ์กด์ฌํ๋ค.
๋จผ์ , ETCD๋ฅผ ์ด์ฉํ ๋ฐฑ์
๊ณผ kube-api server ์ฟผ๋ฆฌ๋ฅผ ํตํ ๋ฐฑ์
์ด๋ค.
๋ ๋ค ์ฅ๋จ์ ์ด ์๋ค.
๊ด๋ฆฌ๋๋ ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋๋ก๋ ETCD ํด๋ฌ์คํฐ์ ์ก์ธ์ค์กฐ์ฐจ ์๋ ์๋ ์๋ค. ๊ทธ ๊ฒฝ์ฐ์ kube-api server๋ฅผ ์ฟผ๋ฆฌํ๋ ๋ฐฑ์
์ด ์๋ง ๋ ๋์ ๋ฐฉ๋ฒ์ผ ๊ฒ์ด๋ค.
etcdctl์ etcd์ ํด๋ผ์ด์ธํธ๋ฅผ ์ํ ๋ช
๋ น์ด์ด๋ค.
์ฐ๋ฆฌ์ ์ค์ต ํ๊ฒฝ์์๋ ETCD ํค-๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ static pod ํํ๋ก ๋ง์คํฐ ๋
ธ๋์ ๋ฐฐํฌ๋์ด ์๋ค.
etcdctl์ ์ฌ์ฉํด์ ๋ฐฑ์
๊ณผ ๋ณต๊ตฌ๋ฅผ ํ๊ธฐ ์ํด์๋ ETCDCTL_API์ ๋ฒ์ ์ 3์ผ๋ก ์ธํ
ํด์ผ ํ๋ค.
ETCDCTL_API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ export ETCDCTL_API=3
์ ๋จผ์ ์คํํด์ผ ํ๋ค.
etcdctl ๋ช
๋ น์ด๋ ๋ง์ฐฌ๊ฐ์ง๋ก '-h', '--help' ์ต์
์ ์ ๊ณตํ๋ค.
export ETCDCTL_API=3
๋ฅผ ๋จผ์ ์คํํด์ผ etcd ๋ฐฑ์
๋ช
๋ น์ด ๋ฑ์ ์ฌ์ฉํ ์ ์๋ค.
ETCD ๋ฒ์ ์ ์๊ธฐ ์ํด์๋ ETCD ํ๋์ ์ด๋ฏธ์ง ๋ฒ์ ์ ํ์ธํ๋ฉด ๋๋ค.
/etc/kubernetes/manifests ํด๋์๋ static pod๋ก ๋ฐฐํฌ๋๋ ํด๋ฌ์คํฐ ๊ตฌ์ฑ ์์๋ค์ ์ ์ ํ์ผ๋ค์ด ์กด์ฌํ๋ค.
etcdctl snapshot save
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ๋์ '--endpoint','--cacert', '--cert', '--key' ์ต์
์ ์ง์ ํด์ผ ํ๋ค.
์ต์
๋ค์ ๋ํ ์ ๋ณด๋ kubectl describe
๋ช
๋ น์ ํตํด etcd ํ๋์์ ์ป์ด์ฌ ์ ์๋ค.
ํ๋ฆฐ ๋ฌธ์
๋ฐ์ดํฐ๊ฐ ๋ณต๊ตฌ๋ ๋๋ ํ ๋ฆฌ๋ฅผ '--data-dir' ์ต์
์ผ๋ก ์ง์ ํด์ผ ํ๋ค.
ls ๋ช
๋ น์ด๋ฅผ ํตํด ๋ณต๊ตฌ๋ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์๋ค.
์ด์ etcd ์ ์ ํ์ผ์์ ๋ณผ๋ฅจ ๊ฒฝ๋ก๋ฅผ ๋ฐ์ดํฐ๊ฐ ๋ณต๊ตฌ๋ ๋๋ ํ ๋ฆฌ๋ก ๋ณ๊ฒฝํ๊ณ ํธ์คํธ ๊ฒฝ๋ก์ ๋ฐฑ์
๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ๋ ์์
์ด ํ์ํ๋ค.
etcd ์ ์ ํ์ผ์์ ํ์๋ ๋ ๋ถ๋ถ์ ๋์ผํ ์์น(๋ฐ์ดํฐ๊ฐ ๋ณต๊ตฌ๋ ๋๋ ํ ๋ฆฌ)๋ฅผ ๊ฐ๋ฆฌ์ผ์ผ ํ๋ค. ์ด ๋ถ๋ถ๋ค์ etcd๊ฐ ์ฌ์์ฑ๋ ๋ ๋ก์ปฌ ํธ์คํธ์ ์๋ ๋ฐ์ดํฐ๋ก ๊ฐ์ฃผ๋๋ ๋ฐ์ดํฐ์ ์์น๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
etcd ์ ์ ํ์ผ์ ๋ด์ฉ์ ๋ณ๊ฒฝํด์ผ๋ฉด etcd ์๋ฒ๊ฐ ์ ์ ๋ค์ด๋๊ธฐ ๋๋ฌธ์ ์ก์ธ์ค๊ฐ ์ ์ ์ค๋จ๋ ๊ฒ์ด๋ค.
์ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ํ๋๋ฅผ ์์ฑํ๋ค.
๋ง์ฝ ์๋์ผ๋ก etcd ํ๋๊ฐ ์ฌ์คํ๋์ง ์์ผ๋ฉด etcd ํ๋๋ฅผ ์ญ์ ํด์ค์ผ ํ๋ค.
etcd ํ๋๊ฐ ์ฌ์คํ๋๊ณ ๋งค๋์ ์ ์ค์ผ์ค๋ฌ๊ฐ ์ฌ๊ฐ๋๋๋ฉด์ ํ๋, ์๋น์ค, ๋ํ๋ก์ด๋จผํธ๊ฐ ์ฌ๊ฐ๋๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
ํ์ฌ ๋
ธ๋์ ์ผ๋ง๋ ๋ง์ ํด๋ฌ์คํฐ๋ค์ด ์กด์ฌํ๋ ์ง ํ์ธํ๊ธฐ ์ํด kubectl config view
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
cluster1์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด์ kubectl config use-context cluster1
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
etcd๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ
1. kubectl get pods -A | grep etcd
๋ช
๋ น์ด๋ฅผ ํตํด etcd ํ๋๋ฅผ ์ฐพ๋๋ค.
2. '/etc/kubernetes/manifest' ํด๋๋ฅผ ํ์ธํ์ฌ static pod๋ก ์ ์๋์ด ์๋์ง ์ฐพ๋๋ค.
3. ps -ef | grep etcd
๋ช
๋ น์ด๋ฅผ ํตํด etcd ํ๋ก์ธ์ค๋ฅผ ์ฐพ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค์ ์์์ ์ธ ๋ณด์์ ๋ํด ์ดํด๋ณด์.
ํด๋ฌ์คํฐ ์์ฒด๋ฅผ ํ์ฑํ๋ ํธ์คํธ๋ถํฐ ์์ํ๋ค.
์ด๋ฐ ํธ์คํธ์ ๋ํ ๋ชจ๋ ์ ๊ทผ์ ๋ณด์๋์ด์ผ ํ๋ค.
๋น๋ฐ๋ฒํธ ๊ธฐ๋ฐ์ ์ธ์ฆ์ ๋ถ๊ฐ๋ฅํด์ผ ํ๊ณ SSH ํค ๊ธฐ๋ฐ์ ์ธ์ฆ๋ง ๊ฐ๋ฅํด์ผ ํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค ๋ชจ๋ ์์ ์ ์ค์ฌ์๋ kube-api server๊ฐ ์๋ค.
kubectl ๋ช
๋ น์ด๋ API์ ์ง์ ์ ๊ทผํจ์ผ๋ก์จ kube-api server์ ์ํธ์์ฉํ ์ ์๋ค.
๊ทธ๊ฒ์ ํตํด ํด๋ฌ์คํฐ์์ ๊ฑฐ์ ๋ชจ๋ ์์
์ ์ํํ ์ ์๋ค. ์ด๊ฒ์ด 1์ฐจ ๋ฐฉ์ด์ ์ด๋ค.
kube-api server ์์ฒด์ ๋ํ ์ ๊ทผ์ ์ ์ดํ๋ ๊ฒ์ด๋ค.
๋ ๊ฐ์ง ์ ํ์ ๋ํด ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํ๋ค.
๋๊ฐ kube-api server์ ์ ๊ทผํ ์ ์๋์ง๋ ์ธ์ฆ(authentication) ๋ฉ์ปค๋์ฆ์ ์ํด ์ ์๋๋ค. kube-api server์ ์ธ์ฆํ ์ ์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์๋ค.
๊ทธ๋ค์ด ๋ฌด์์ ํ ์ ์๋์ง๋ ๊ถํ ๋ถ์ฌ(authorization) ๋ฉ์ปค๋์ฆ์ ์ํด ์ ์๋๋ค.
ํด๋ฌ์คํฐ์ ๊ตฌ์ฑ ์์ ๊ฐ์ ๋ชจ๋ ํต์ ์ kubelet๊ณผ kube-proxy์ ๊ฐ์ด ์์
์ ๋
ธ๋์์ ์คํ๋๋ ๊ฑด TLS ์ํธํ๋ก ๋ณด์๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ ๋ค์ค ๋ ธ๋, ๋ค์ํ ๊ตฌ์ฑ์์๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์ต์ข ์ฌ์ฉ์์ ๋ณด์์ ์์ฉ ํ๋ก๊ทธ๋จ ์์ฒด์ ์ํด ๋ด๋ถ์ ์ผ๋ก ๊ด๋ฆฌ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ ผ์์์ ์ ์ธํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ ์ฌ์ฉ์ ๊ณ์ ์ ์ง์ ๊ด๋ฆฌํ์ง ์๋๋ค. ๊ทธ๋์ ์ฌ์ฉ์ ์ธ๋ถ ์ ๋ณด๊ฐ ๋ด๊ธด ํ์ผ์ด๋ ์ธ์ฆ์ ๋๋ ํ์ฌ ID ์๋น์ค์ ๊ฐ์ ์ธ๋ถ ์์ค์ ์์กดํ๋ค.
๊ทธ๋์ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์์ ์ฌ์ฉ์๋ฅผ ์์ฑํ ์ ์๊ณ ์ฌ์ฉ์ ๋ฆฌ์คํธ๋ ๋ณผ ์ ์๋ค.
ํ์ง๋ง ์๋น์ค ๊ณ์ ์ ๊ฒฝ์ฐ ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ๊ด๋ฆฌํ ์ ์๋ค.
์ฟ ๋ฒ๋คํฐ์ค API๋ฅผ ์ด์ฉํด ์๋น์ค ๊ณ์ ์ ์์ฑํ๊ณ ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ ์๋น์ค ๊ณ์ ์ ๋ํ ๋
์ ์ ์ธ ์น์
๋ ์๋ค.
๋ชจ๋ ์ฌ์ฉ์์ ์ ๊ทผ์ kube-api server์ ์ํด ๊ด๋ฆฌ๋๋ค.
kubectl ํด์ ํตํด ํด๋ฌ์คํฐ์ ์ ๊ทผํ๋ API๋ฅผ ์ง์ ์ฌ์ฉํ๋ ์๊ด์๋ค.
๋ชจ๋ ์์ฒญ์ kube-api server๋ก ๊ฐ๋ค. kube-api server๋ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ ์ ๋จผ์ ์ธ์ฆ์ ํ๋ค.
๊ณ ์ ์ํธ ํ์ผ, ๊ณ ์ ํ ํฐ ํ์ผ, ์ธ์ฆ์, ํ์ฌ ์ธ์ฆ ํ๋กํ ์ฝ ๋ฑ ๋ค์ํ ์ธ์ฆ ๋ฉ์ปค๋์ฆ์ด ์๋ค.
๊ณ ์ ์ํธ ํ์ผ์ ๊ฒฝ์ฐ, csv ํ์ผ์ ์ฌ์ฉ์ ๋ชฉ๋ก๊ณผ ์ํธ๋ฅผ ๋ง๋ค ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ฌ์ฉ์ ์ ๋ณด์ ์์ค๋ก ์ฌ์ฉํ๋ค.
ํ์ผ ์ด๋ฆ์ kube-api server์ ์ต์
์ผ๋ก ์ง์ ํ ๋ค์ kube-api server๋ฅผ ์ฌ์์ํด์ผ ํ๋ค.
๋ง์ฝ ํด๋ฌ์คํฐ๋ฅผ kubeadm ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ์ค์ ํ๋ค๋ฉด kube-api server ํ๋ ์ ์ ํ์ผ์ ์์ ํด์ผ ํ๋ค.
๋๋ ์ฌ์ฉ์ ๋ฐ ์ํธ๋ฅผ '-u' ์ต์
์ ํตํด ์ง์ ํ ์ ์๋ค.
์ ์ ํ ํฐ ํ์ผ์ ๊ฒฝ์ฐ, ์ต์
๋ง ์ํธ ํ์ผ๊ณผ ๋ค๋ฅด๊ฒ ์ค์ ํด์ฃผ๋ฉด ๋๋ค.
๊ณ ์ ํ์ผ์ ์ฌ์ฉ์ ์ด๋ฆ, ์ํธ, ํ ํฐ์ ์ ์ฅํ๋ ์ด ์ธ์ฆ ๋ฉ์ปค๋์ฆ์ ๋ถ์์ ํ๊ธฐ ๋๋ฌธ์ ๊ถ์ฅํ์ง ์๋๋ค.
์ธ์ฆ์๋ ๊ฑฐ๋ ๋์ค ์ํธ ์ ๋ขฐ๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
๊ฐ๋ น, ์ฌ์ฉ์๊ฐ ์น ์๋ฒ์ ์ ๊ทผํ๋ ค๊ณ ํ ๋ TLS ์ธ์ฆ์๋ ์ฌ์ฉ์์ ์๋ฒ ์ฌ์ด์ ํต์ ์ด ์ํธํ๋๋๋ก ํ๋ค.
์์, ๋์นญํค์ ๋ฌธ์ ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ ๋ฐ ์ฌ์ฉ๋ ํค๊ฐ ์ํธํ๋ ๋ฐ์ดํฐ ๋คํธ์ํฌ๋ฅผ ํตํด ์๋ฒ๋ก ์ ์ก๋๊ธฐ ๋๋ฌธ์ ํด์ปค๊ฐ ํค๋ฅผ ์ ์ํด ๋ฐ์ดํฐ๋ฅผ ํด๋ ํ ์ํ์ด ์๋ค๋ ์ ์ด๋ค.
๊ทธ๋์ ๋์นญํค๋ฅผ ์ฎ๊ธฐ๊ธฐ ์ํด ๋น๋์นญํค ์ํธํ๋ฅผ ์ฌ์ฉํ๋ค. ์๋ฒ์ ๊ณต์ฉ๊ณผ ๊ฐ์ธ ํค ์์ ์์ฑํ๋ ๊ฒ์ด๋ค.
openssl
๋ช
๋ น์ด๋ฅผ ์ด์ฉํด ๊ฐ์ธํค์ ๊ณต์ฉํค ์์ ์์ฑํ๋ค.
ํ์ง๋ง ํด์ปค๊ฐ ์๋ฒ์ธ์ฒ ์
์์ ์ผ๋ก ๋น์ทํ ์๋ฒ๋ฅผ ๋ง๋ค ์๋ ์๋ค.
๋ฐ๋ผ์, ์๋ฒ์์ ๋์จ ํฉ๋ฒ์ ์ธ ํค์ธ์ง ํ์ธ์ด ํ์ํ๋ค.
์๋ฒ๊ฐ ํค๋ฅผ ๋ณด๋ผ ๋ ํค ๋์ ํค๋ฅผ ๊ฐ์ง ์ธ์ฆ์๋ฅผ ๋ณด๋ธ๋ค.
ํ์ง๋ง ์ด๋ฐ ์ธ์ฆ์๋ ๋๊ตฌ๋ ๋ง๋ค ์ ์๋ค.
๊ทธ๋์, ์ธ์ฆ์๋ฅผ ์์ฑํ๋ค๋ฉด ์ง์ '์๋ช
'ํด์ผํ๋ค.
๋ธ๋ผ์ฐ์ ๋ ์๋ฒ์์ ๋ฐ์ ์ธ์ฆ์๊ฐ ํฉ๋ฒ์ ์ธ์ง ์ ํจ์ฑ์ ํ์ธํ๊ณ ๊ณ ์ ๋ ์ธ์ฆ์๋ผ๋ฉด ์ฐ๋ฆฌ์๊ฒ ๊ฒฝ๊ณ ๋ฅผ ์ค๋ค.
๊ทธ๋ฌ๋ฉด ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ ๋ขฐํ ๋งํ ํฉ๋ฒ์ ์ธ ์น ์๋ฒ ์ธ์ฆ์๋ ์ด๋ป๊ฒ ๋ง๋ค์ด์ง๊น?
๊ทธ๋์ CA(Certificate Authority)๊ฐ ๋์ ๋ค.
CA๋ ์ฐ๋ฆฌ๋ฅผ ์ํด ์ธ์ฆ์์ ์๋ช ํ๊ณ ์ ํจ์ฑ์ ํ์ธํด์ฃผ๋ ์ ์๋ ค์ง ๊ธฐ๊ด์ด๋ค.
๋จผ์ , ์์ฑํ ํค์ ์ฐ๋ฆฌ์ ์น์ฌ์ดํธ ๋๋ฉ์ธ ์ด๋ฆ์ ์ด์ฉํด์ CSR(Certificate Signing Request) ํ์ผ์ ์์ฑํ๋ค. (openssl
๋ช
๋ น์ด ์ฌ์ฉ) CSR ํ์ผ์ ์ธ์ฆ์ ์๋ช
์์ฒญ์ผ๋ก, CA๋ก ๋ณด๋ด์ ธ ์๋ช
์ ๋ฐ์์ผ ํ๋ค. ์ธ์ฆ์ ๊ด๊ณ์๊ฐ ์์ธ ์ฌํญ์ ํ์ธํ๊ณ ์ผ๋จ ํ์ธ๋๋ฉด ์ธ์ฆ์์ ์๋ช
ํด์ ๋ค์ ๋ณด๋ด์ค๋ค.
ํด์ปค๋ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ธ์ฆ์์ ์๋ช
์ ๋ฐ์ผ๋ ค ํ๋ฉด ์ธ์ฆ์ ์ ํจ์ฑ ๊ฒ์ฌ ๋จ๊ณ์์ ์คํจํ ๊ฒ์ด๋ค.
๊ทธ๊ฐ ํธ์คํ
ํ๋ ์น์ฌ์ดํธ์ ์ ํจํ ์ธ์ฆ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ํ์ฌ๊ฐ ์ธ์ฆ์๋ฅผ ๊ฑฐ๋ถํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ฌ๋ฉด ํฉ๋ฒ์ ์ธ CA๊ฐ ์๋ช ํ๋ค๋ ๊ฒ์ ์ด๋ป๊ฒ ์ ์ ์์๊น?
CA๋ค์ ๊ฐ์ธํค์ ๊ณต์ฉํค ์์ ๊ฐ๊ณ ์๋ค. CA๊ฐ ์ธ์ฆ์์ ์๋ช
ํ ๋ ๊ฐ์ธํค๋ฅผ ์ฌ์ฉํ๋ค. ๋ชจ๋ CA์ ๊ณต๊ฐํค๋ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต๋๊ธฐ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ ๋ CA์ ๊ณต๊ฐํค๋ฅผ ์ด์ฉํด CA๊ฐ ์ง์ ์๋ช
ํ ์ธ์ฆ์์์ ํ์ธํ๋ค. -> ์ผ๋ฐ์ ์ธ ๊ฐ์ธํค-๊ณต์ฉํค์ ๋ฐ๋๋ก ๊ณต์ฉํค๊ฐ ์ํธ ํด๋
์ ์ฌ์ฉ๋๋ค.โ
์์ฝํด๋ณด์.
๋ฉ์์ง๋ฅผ ์ํธํํ๋ ค๋ฉด ๊ณต์ฉํค์ ๊ฐ์ธํค๋ก ๋น๋์นญ ์ํธํ๋ฅผ ํด์ผ ํ๋ค.
์๋ฒ๋ ๋จผ์ CA์ CSR(์ธ์ฆ์ ์๋ช ์์ฒญ)์ ๋ณด๋ธ๋ค. CA๋ ๊ฐ์ธํค๋ก CSR์ ์๋ช ํ๋ค. ๋ชจ๋ ์ฌ์ฉ์๋ CA์ ๊ณต์ฉํค๋ฅผ ๊ฐ๊ณ ์๋ค.
์๋ช ๋ ์ธ์ฆ์๋ ์๋ฒ๋ก ๋ค์ ๋ณด๋ด์ง๋ค. ์๋ฒ๋ ์๋ช ๋ ์ธ์ฆ์๋ก ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ค.
์ฌ์ฉ์๊ฐ ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ๊ทผํ ๋๋ง๋ค ์๋ฒ๋ ๋จผ์ ์ธ์ฆ์(๊ณต๊ฐํค)๋ฅผ ๋ณด๋ธ๋ค.
์ฌ์ฉ์, ์ ํํ๋ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ธ์ฆ์๋ฅผ ์ฝ๊ณ ์๋ฒ์ ๊ณต๊ฐ ํค๋ฅผ ์ ํจ์ฑ ๊ฒ์ฌํ๊ณ ํ์ํ๊ธฐ ์ํด CA์ ๊ณต์ฉํค๋ฅผ ์ฌ์ฉํ๋ค.
๊ทธ๋ฐ ๋ค์ ๋์นญํค๋ฅผ ์์ฑํด ๋ชจ๋ ํต์ ์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค. ๋์นญํค๋ ์๋ฒ์ ๊ณต๊ฐํค๋ก ์ํธํ๋์ด ์๋ฒ๋ก ์ ์ก๋๋ค.
์๋ฒ๋ ๊ฐ์ธํค๋ก ๋ฉ์์ง๋ฅผ ํด๋ ํ๊ณ ๋์นญํค๋ฅผ ํ์ํ๋ค.
๋์นญํค๋ ์์ผ๋ก ํต์ ์ ์ํด ์ฌ์ฉ๋๋ค.
๊ด๋ฆฌ์๊ฐ SSH ๋ณด์ ํค ์์ ์์ฑํ๋ค. ์น ์๋ฒ๋ HTTPS๋ก ์น์ฌ์ดํธ๋ฅผ ๋ณดํธํ ํค ์์ ์์ฑํ๋ค. ์ธ์ฆ์ ๊ธฐ๊ด์ ์์ฒด ๊ด๋ฆฌ์๋ฅผ ์์ฑํด ์ธ์ฆ์์ ์๋ช
ํ๋ค.
ํ์ง๋ง ์ต์ข
์ฌ์ฉ์๋ ๋จ์ผ ๋์นญํค๋ง ์์ฑํ๋ค.
ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ ํจ์ฑ์ ํ์ธํ ์ ์์ง๋ง ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ธ์ง ํ์คํ ์ ์ ์๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ์ง์ง์ธ์ง ํ์ธํ๊ธฐ ์ํด ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์ธ์ฆ์๋ฅผ ์์ฒญํ ์ ์๋ค.
๊ทธ๋์ ํด๋ผ์ด์ธํธ๋ ํ ์์ ํค์ ์ ํจํ CA๋ก๋ถํฐ ์๋ช
๋ ์ธ์ฆ์๋ฅผ ์์ฑํด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ์๋ฅผ ์๋ฒ๋ก ๋ณด๋ธ๋ค.
์ด ์ ์ฒด ์ธํ๋ผ๋ PKI(Public Key Infrastructure)๋ผ ์๋ ค์ ธ ์๋ค.
๋ง์ง๋ง์ผ๋ก ํ ๊ฐ์ง๋ง ํ์คํ ํด๋์.
๊ณต๊ฐํค์ ๊ฐ์ธํค๋ ์ฐ๊ด์ด ์๊ฑฐ๋ ์ง์ ์ด๋ฃจ๋ ํค์ด๋ค. ๋ฐ์ดํฐ ์ํธํ์ ํด๋
์ ํ๋์ ํค๋ก ํ ์ ์๋ค.
๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ ๋๋ ์ ์คํด์ผ ํ๋ค. ๊ฐ์ธ ํค๋ก ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ฉด ๊ณต๊ฐ ํค๋ฅผ ๊ฐ์ง ์ฌ๋์ด ๋๊ตฌ๋ ์ํธ๋ฅผ ํ๊ณ ๋ฉ์์ง๋ฅผ ์ฝ์ ์ ์๋ค.
๊ณต์ฉํค๊ฐ ์๋ ์ธ์ฆ์๋ ๋ณดํต .crt๋ .pem ํ์ฅ์๋ฅผ ๊ฐ๋๋ค.
๊ฐ์ธํค๋ ๋ณดํต .key๋ -key.pem ํ์ฅ์๋ฅผ ๊ฐ๋๋ค. ์ฆ, ๋จ์ด๋ ํ์ฅ์์ 'key'๊ฐ ๋ค์ด๊ฐ๋ ๊ฒ์ ๊ฐ์ธํค์ด๋ค.