Traefik + cert-manager 사용시 SSL 설정
traefik + cert-manager로 인증서 발급받아서 아주 잘 쓰고 있었어요.
그런데 이번에 새로운 도메인을 사서 거기에 이 블로그를 옮기게 되었어요.
그런데 왜인지 인증서가 적용이 안되더라고요?
항상 ingressroute에 tls 안넣고 써서 그게 왜그런지도 모르고 있었어요.
그렇게 하게 된 삽질에 대해 제가 이 글에서 한 번 말씀드리고자 합니다.
인증서 생성
저는 인증서를 cert-manager 네임스페이스에 만들어 뒀어요.(왜그랬는진 기억이 안나요)
Certificate 리소스의 내용입니다.
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: ppapdev-tls
namespace: cert-manager
spec:
secretName: ppapdev-tls-secret
secretTemplate:
annotations:
replicator.v1.mittwald.de/replicate-to: "ghost,ppap"
dnsNames:
- 'ppap.dev'
- '*.ppap.dev'
issuerRef:
name: default-issuer
group: cert-manager.io
이건 수정 완료된 certificate이고 원래는 secretTemplate이 없었습니다. 일단 저 replicator을 이용해 cert-manager
네임스페이스에 있는 시크릿을 ghost
와 ppap
네임스페이스에 복사해 줬어요.
Ingress 설정
ingress 세팅은 원래 하던대로(?) 하시면 되지만, tls 세팅을 추가해줘야 했어요. 아마 그 인증서로 사용하는 2번째 ingress부터는 딱히 이 tls 세팅이 필요할것 같진 않아요.
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: ghost
namespace: ghost
spec:
tls:
secretName: ppapdev-tls-secret
routes:
- match: Host(`ppap.dev`)
kind: Rule
services:
- name: ghost
kind: Service
port: 80
scheme: http
이렇게 tls 세팅을 해주니 정상적으로 인증서가 표시되는걸 확인했어요.
여기까지가 제가 오늘 한 삽질이었습니당! ㅎ....
아마 제가 너무 문서를 안봐서..? 생긴 일인 것 같긴 하지만(...) 같은 문제가 있다면 위 방법 한번 시도해 보시는것도 나쁘지 않을 것 같아요!