Nginx 에 tls version 고정하는 방법

작성자 이경미 수정일 2022-12-23 17:23

들어가며

  • 특정 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;      
}                                                                                                                                                              
                                                                       


아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.

02-558-8300