들어가며
- 특정 tls version 을 사용할 때, nginx 에 tls version 을 지정할 수 있습니다.
- 애자일 소다 제품의 nginx version 을 기준으로 작성되었습니다.
- nginx version: nginx/1.19.1
내용
고객사마다 tls 허용 version 에는 차이가 있습니다.
또한 저희 제품에 포함된 nginx 에는 tls v1.2, tls v1.3 이 포함되어 있습니다.
이 때 허용되는 tls version 이라면 해당 version 만 nginx 에서 허용되도록 설정할 수 있습니다.
현재 tls 허용 version 확인 방법
- Nginx 는 pod 로 작동하므로 pod 내부에서 확인할 수 있습니다.
kubectl exec -it sodaflow-nginx-ingress-controller-<UUID> bash
vi /etc/nginx/nginx.conf
일부만 작성된 파일입니다. 버전확인 용이므로 참고바랍니다.
http { lua_package_path "/etc/nginx/lua/?.lua;;"; lua_shared_dict balancer_ewma 10M; lua_shared_dict balancer_ewma_last_touched_at 10M; lua_shared_dict balancer_ewma_locks 1M; lua_shared_dict certificate_data 20M; lua_shared_dict certificate_servers 5M; lua_shared_dict configuration_data 20M; lua_shared_dict ocsp_response_cache 5M; server_name_in_redirect off; port_in_redirect off; ssl_protocols TLSv1.2 TLSv1.3; ssl_early_data off; }
제품에서 제공하는 nginx yaml 에 tls 버전을 지정하는 ConfigMap 을 작성합니다. (yaml 파일 추가하여 작업 가능)
- tls v1.2 만 허용하는 경우
vi nginx_configmap.yaml
apiVersion: v1 kind: ConfigMap metadata: name: sodaflow-nginx-ingress-controller data: ssl-protocols: "TLSv1.2"
저장 후 configmap 을 적용합니다.
kubectl apply -f nginx_configmap.yaml
다시 nginx 내부에서 TLS 버전을 확인했을 때, 지정된 버전만 허용된 것을 확인할 수 있습니다.
kubectl exec -it sodaflow-nginx-ingress-controller-<UUID> bash
vi /etc/nginx/nginx.conf
http { lua_package_path "/etc/nginx/lua/?.lua;;"; lua_shared_dict balancer_ewma 10M; lua_shared_dict balancer_ewma_last_touched_at 10M; lua_shared_dict balancer_ewma_locks 1M; lua_shared_dict certificate_data 20M; lua_shared_dict certificate_servers 5M; lua_shared_dict configuration_data 20M; lua_shared_dict ocsp_response_cache 5M; server_name_in_redirect off; port_in_redirect off; ssl_protocols TLSv1.2 TLSv1.3; ssl_early_data off; }
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.