CLOUD/Kubernetes

[쿠버네티스] Ingress 에서 HTTPS 적용하기 (cert-manager, let's encrypt)

헐리 2021. 11. 1. 14:00

1. letsencrypt 인증서 발급

cert-manager를 설치한다. 이는 Let's Encrypt를 사용하는 무료 인증서 관리자이다.

cert-manager홈페이지에서 kubernetes 에 인증서를 설치하는 문서 주소이다

https://cert-manager.io/docs/installation/

 

Installation

Automatically provision and manage TLS certificates in Kubernetes

cert-manager.io

cert-manager가 Let's Encrypt를 이용하도록 Issuer 오브젝트 생성

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: ㅁㅁㅁ@ㅁㅁㅁㅁㅁ.kr
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
    - http01:
        ingress:
          class:  nginx

 

2. ingress 설정

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: AAAAAAAAAAAAAA-deploy
  namespace: AAAAAAAAAAAAAA-ns
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: AAAAAAAAAAAAAA.kr
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: AAAAAAAAAAAAAA-service
            port:
              number: 3000
 tls:
 - hosts:
    - AAAAAAAAAAAAAA.kr
    secretName: letsencrypt-prod

위의 ingress를 적용한다

 

3. ingress 적용후 인증서 발행 확인

kubectl describe certificate letsencrypt-prod

몇분정도 시간이 소요된 후 
Certificate issued successfully 가 나오면 성공