Kubernetes Ingress SSL 인증서 적용 (한국전자인증)
2021. 12. 20. 15:54ㆍDev
Kubernetes Ingress 로 웹 어플리케이션을 서비스할 경우 https 통신을 위해 SSL 인증서를 Ingress 에 적용해본다. 나같은 경우는 SSL 인증서를 한국전자인증 (https://www.crosscert.com/) 을 통해 발급받았고, 여러분도 여기에서 발급받았다는 가정 하에 설명한다. 아마 다른 곳에서 인증서를 받아도 크게 다르지 않을 것이다.
인증서를 발급받으면 크게 3개의 파일이 담겨있다.
- DigiCertCA.pem
- cert.pem
- key.pem
여기서 Ingress 에 인증서를 적용하기 위해서는 인증서 (cert.pem) 과 비밀키 (key.pem) 두 개가 필요하다.
비밀키의 비밀번호 해제
key.pem 으로 바로 Secret 을 생성하려고 하면 오류가 난다. key.pem 자체가 암호화 되어있는 경우인데 이럴 경우 SSL 인증서 발급시 비밀번호로 풀어주면 된다.
openssl rsa -in key.pem -out key.unencrypted.pem -passin pass:<발급당시 비밀번호>
Secret 생성
itspjc-tls 라는 이름의 secret 을 생성해준다. 이 때, 암호가 풀린 key.unencrypted.pem 을 사용한다.
kubectl create secret tls itspjc-tls --cert cert.pem --key key.unencrypted.pem
Ingress 에 적용
인증서의 도메인이 itspjc.co.kr 이라고 가정하면 아래와 같이 ingress의 YAML 파일을 수정하여 적용해주면 된다.
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: itspjc-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: itspjc.co.kr
http:
paths:
- path: /
backend:
serviceName: itspjc-frontend-svc
servicePort: 80
- path: /api
backend:
serviceName: itspjc-backend-svc
servicePort: 80
tls:
- hosts:
- itspjc.co.kr
secretName: itspjc-tls
마치며
이게 끝이다. 이제 브라우저를 통해 https 인증서가 적용되었는지 확인해보면 된다. Kubernetes Ingress만 잘 구성되어 있다면 인증서를 적용하는 방법은 이렇게 쉽다.
'Dev' 카테고리의 다른 글
Logseq 요새 자주쓰는 새로운 노트앱 (0) | 2023.07.27 |
---|---|
MySQL 용량정리 (Binary log 삭제) (0) | 2022.03.09 |
MySQL 이중화 하기(HA) 1편: Keepalived 설치하기 (1) | 2021.12.20 |
CKA 시험후기 (Certified Kubernetes Administrator) (0) | 2021.10.31 |
Fast API 는 더 깔끔한 API UI도 제공합니다 ( ReDoc ) (0) | 2021.10.29 |