Search

Ngnix SSL 프로토콜 설정

Multi-select
SSL
TLS
SSL인증서
SSL보안서버
보안서버 인증서
HTTPS
UCERT
CodeSign
유서트
코드싸인
Ngnix

설정 확인 사항

이 문서는 SSL 인증서 설치를 위한 설정이며 관련 없는 설정은 부분적으로 생략하였습니다.
서버마다 설정이 상이할 수 있어 인증서 설치 시 해당 문서 참고 부탁드립니다.

1. 권장 알고리즘

사용을 권장하는 알고리즘
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
DHE 알고리즘 사용 권고
DHE 알고리즘은 웹서버 환경인 OPENSSL 및 Java 버전의 따라 취약한 비트수를 사용하게 됩니다.
비트 수는 1024bit와 2048bit 를 사용할 수 있습니다.
1024bit 의 경우 약한 알고리즘이며, 2048bit 의 경우가 안전한 알고리즘을 사용 합니다
아래의 표는 2048bit 를 출력하는 OPENSSL 버전과 Java 버전 입니다.
OPENSSL 버전
OpenSSL 1.0.2 : openssl 1.0.1n 이상 OpenSSL 1.0.1 : openssl 1.0.2b 이상
Java 버전
JDK 1.8 이상
사용이 제외된 알고리즘
TLS_RSA_WITH_RC4_128_SHA TLS_RSA_WITH_RC4_128_MD5 TLS_ECDHE_RSA_WITH_RC4_128_SHA
취약한 알고리즘
TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA TLS_RSA_WITH_CAMELLIA_128_CBC_SHA TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA TLS_D HE_RSA_WITH_AES_128_CBC_SHA TLS_DHE_RSA_WITH_AES_256_CBC_SHA TLS_DHE_RSA_WITH_DES_CBC_SHA TLS_DHE_RSA_WITH_SEED_CBC_SHA

2. 설정 관련 FAQ

- 권장 알고리즘과 범용 알고리즘 중, 어느 알고리즘을 적용해야 하나요?

권장 알고리즘은 높은 수준의 Cipher Suites(SSL 알고리즘)입니다.
높은 등급의 보안 점수를 받는데 도움이 됩니다.
문제는 낮은 수준의 보안 설정만 지원되는 사용자 단말기에서는 접속이 되지 않을 수 있습니다.
또한 웹 서버에서도 높은 수준의 보안 사양을 가지고 있어야 합니다.
범용 알고리즘은 취약한 알고리즘을 포함한 범용성을 위한 알고리즘입니다.
높은 수준의 알고리즘을 사용 못하는 클라이언트가 있을 경우 사용하기 위한 알고리즘입니다.
낮은 수준의 보안 등급과 함께 취약성이 드러나 있으므로 주의 바랍니다.

- 적용하기 전 주의사항이 있을까요?

각 웹 서버에 대한 재 시작이 필요합니다 .
다만 적용하시기 전 알고리즘이 지원되는지 확인이 필요합니다.
IIS를 사용하는 윈도우 서버 는 레지스트리를 수정해야 함으로 각별한 주의가 필요합니다.

- 적용을 하고 나면, 앞으로 같은 작업을 할 필요가 없나요?

그렇지 않습니다.
알고리즘의 취약점 프로토콜에 관한 취약점이 발견되면 이와 같은 사항을 다시 안내 드릴 수 있습니다.

- 프로토콜과 알고리즘은 별개로 조정을 해도 괜찮나요?

가능합니다.
다만 프로토콜과 알고리즘은 매우 밀접한 관계로 프로토콜 지원이 가능하더라도
TLS 1.2 에 지원가능 알고리즘이 없으면 TLS 1.2 통신이 되지 않습니다.
반대로 높은 수준의 알고리즘은 TLS 1.2 에서만 지원 됩니다. (ECDHE, GCM, SHA256, SHA384 등등)

진행 과정 - Ngnix SSL Protocol 및 Cipher 설정

1. ($HOME_BASE/conf/nginx.conf 를 열어 아래와 같이 설정합니다.

아래 값은 샘플 값입니다.
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED";

2. Ngnix를 재기동합니다.

프로토콜 활성화 확인하기

서버 재구동 후, 프로토콜 활성화를 확인합니다.
명령어
설명
openssl s_client -connect [해당 IP 및 도메인]:443 -ssl3
SSL v3 프로토콜 통신 확인
openssl s_client -connect [해당 IP 및 도메인]:443 -ssl2
SSL v2 프로토콜 통신 확인
openssl s_client -connect [해당 IP 및 도메인]:443 -tls1
TLS v1.0 프로토콜 통신 확인
openssl s_client -connect [해당 IP 및 도메인]:443 -tls1_1
TLS v1.1 프로토콜 통신 확인
openssl s_client -connect [해당 IP 및 도메인]:443 -tls1_2
TLS v1.2 프로토콜 통신 확인

- sslv2 프로토콜 통신 확인

openssl s_client -connect [해당 IP 및 도메인]:443 –ssl2 

- sslv3 프로토콜 통신 확인

openssl s_client -connect [해당 IP 및 도메인]:443 –ssl3

- tls1.0 프로토콜 통신 확인

openssl s_client -connect [해당 IP 및 도메인]:443 –tls1

- tls1.1 프로토콜 통신 확인

openssl s_client -connect [해당 IP 및 도메인]:443 –tls1.1

관련된 자료가 더 필요하신가요?