WEB Server - NGNINX SSL 인증서 적용하기




    이번 포스팅에서는 NGINX에서 SSL 인증서 적용 방법을 알아보겠습니다






    이전 글 :


    서버와 클라이언트 그리고 HTTP - https://server-talk.tistory.com/291


    WEB Server - NGINX 알아보기 - https://server-talk.tistory.com/297


    WEB Server - NGINX Comfile 설치하기 - https://server-talk.tistory.com/301


    WEB Server - NGINX 서비스 제어 - https://server-talk.tistory.com/302


    WEB Server - NGINX 구성파일 및 기본설정 - CentOS 7 - https://server-talk.tistory.com/303


    WEB Server - NGINX HTTP 설정 - CentOS 7 - https://server-talk.tistory.com/304


    WEB Server - NGINX PHP 5.2 연동하기 - CentOS 7 - https://server-talk.tistory.com/307


    WEB Server - NGINX LOCATION 블록 알아보기 - CentOS 7https://server-talk.tistory.com/310


    WEB Server - NGINX LOCATION 블록 사용법 - CentOS 7- https://server-talk.tistory.com/311


    WEB Server - NGNINX 기본 상태 정보(현황 모듈) 알아보기 - https://server-talk.tistory.com/313


    WEB Server - NGNINX 기본 인증(접근제한) 알아보기 - https://server-talk.tistory.com/314






     

     SSL 인증서는 무엇인가?



    NGINX에서는 웹사이트에 방문하는 방문자를 보호해주는 SSL 모듈을 지원합니다.


    관련 글 : SSL 인증서 이해하기 - https://server-talk.tistory.com/141






     

     NGINX SSL 모듈




    NGIXN SSL 모듈을 통해 아래와 같은 기능을 제공합니다



    1. ssl_certificate : PEM 인증서 파일을 지정하는데 사용됩니다


    사용법 : ssl_certificate /[파일경로]/[인증서].pem;

    ex) ssl_certificate /usr/local/nginx/ssl/server-talk.pem;




    2. ssl_certificate_key : PEM 인증서 key 파일을 지정하는데 사용됩니다


    사용법 : ssl_certificate_key /[파일경로]/[SSL인증서].key;

    ex) ssl_certificate_key /usr/local/nginx/ssl/server-talk.key;




    3. ssl_ciphers : 사용될 암호화 방식을 지정합니다


    사용법 : ssl_ciphers [암호화 방식];

    ex) ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;




    4. ssl_prefer_server_ciphers : 서버의 암호화 방식을 사용할지 사용자 암호화 방식을 사용하지 여부를 지정하는데 사용됩니다

    사용법 : ssl_prefer_server_ciphers [on]or[off];

    ex) ssl_prefer_server_ciphers [on];

    - on으로 지정하여 서버의 암호화 방식을 권장합니다.



    5. ssl_session_cache : SSL 세션 캐시를 설정하는데 사용됩니다


    사용법 : ssl_session_cache [off] [none] [builtin:size] [shared:[name]:[size]];

    ex) ssl_session_cache shared:SSL:1m;




    6. ssl_session_timeout : SSL 세션이 활성화 기준으로 제한시간을 지정하는데 사용됩니다


    사용법 : ssl_session_timeout [분]m;

    ex) ssl_session_timeout 5m;







     

     NGINX SSL 설정하기






    server {
    	 listen       443        ssl; //설명: 포트번호 설정.
    
    	 server_name server-talk.com; //설명: 서버 네임을 기입한다.
    
    	 ssl_certificate /usr/local/nginx/ssl/server-talk.com.pem;
    	 //설명: 인증서 위치를 설정하고 파일 명을 동일하게 한다.
    
    	 ssl_certificate_key /usr/local/nginx/ssl/server-talk.com.key;
    	 //설명: 인증서 키 파일 경로 설정 및 파일명 동일하게 한다.
    
    	 ssl_session_cache shared:SSL:1m;
    
    	 ssl_session_timeout 5m;
    
    	 ssl_ciphers HIGH:!aNULL:!MD5;
    
    	 ssl_prefer_server_ciphers on;
    	. . .
     }
    


    위 내용과 같이 SSL 인증서를 적용할 SERVER 블록에 있는 도메인에 인증서 파일을 적용하시면 됩니다.




    ※ 주의 : NGINX 1.15 이전 버전에서는 listen의 ssl 인자를 사용하지 않고 ssl on; 을 지정하셔야 됩니다.


    Posted by Server-talk 서버이야기