인증서와 키가 없다면 다음 두 가지 주요 방법 중 하나를 선택하여 인증서를 얻을 수 있습니다:
무료 인증서 발급 (Let's Encrypt): Let's Encrypt는 무료로 인증서를 발급하는 인증 기관(CA)입니다. cert-manager와 같은 Kubernetes 확장을 사용하면 클러스터 내에서 자동으로 Let's Encrypt 인증서를 발급하고 갱신할 수 있습니다.
상용 인증서 구매: 여러 CA에서 상용 인증서를 구매할 수 있습니다. 구매한 후, 발급된 인증서와 개인 키를 받게 됩니다.
아래는 cert-manager를 사용하여 Let's Encrypt에서 인증서를 자동으로 발급받는 기본 단계입니다:
cert-manager 설치:
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.yaml
Let's Encrypt 발급자(Issuer) 생성:
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
# 이메일 주소는 여러분의 것으로 변경하세요.
email: your-email@example.com
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx
위의 리소스를 issuer.yaml
로 저장하고 kubectl apply -f issuer.yaml
로 생성합니다.
인증서 요청:
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: my-domain-cert
namespace: default
spec:
secretName: my-tls-secret
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
commonName: mydomain.com
dnsNames:
- mydomain.com
위의 리소스를 certificate.yaml
로 저장하고 kubectl apply -f certificate.yaml
로 생성합니다.
몇 분 후, cert-manager가 Let's Encrypt와 통신하여 인증서를 발급하고 my-tls-secret
이름의 secret으로 저장합니다.
kubectl create secret
명령어를 사용하여 Kubernetes secret으로 인증서와 키를 추가합니다.두 방법 중에서는 Let's Encrypt 방법이 비용이 들지 않고, 자동 갱신이 가능하기 때문에 많은 사용자에게 인기가 있습니다.