Print
카테고리: [ Nginx ]
조회수: 10656

Nginx 웹 서버를 통해 HTTP 2.0을 처리해보고자 합니다. 어렵지 않습니다. --with-http_v2_module 옵션이 있으니까요.

nginx version: nginx/1.13.1
built by gcc 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)
built with OpenSSL 1.0.1k-fips 8 Jan 2015
TLS SNI support enabled
configure arguments: --prefix=/app/nginx-1.13.1-server1 --with-http_ssl_module --with-http_v2_module

위와 같이 컴파일했지만..

Nginx에서 HTTP 2.0을 처리하려면 OpenSSL 1.0.2 이상이 필요합니다. 만약 해당 리눅스 호스트에서 패키지 설지 방식으로는 최대 OpenSSL 1.0.1 밖에 안된다면, 별도로 소스 컴파일하여 설치해야 합니다.

nginx version: nginx/1.13.1
built by gcc 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)
built with OpenSSL 1.0.2l  25 May 2017
TLS SNI support enabled
configure arguments: --prefix=/app/nginx-1.13.1-server2 --with-http_ssl_module --with-openssl=/app/openssl-1.0.2l --with-http_v2_module

이렇게 설치를 완료를 합니다.

 

그런데 구글 크롬 브라우저에서 ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY와 같은 메세지가 발생하면서 안된다면?

결론부터 말씀드리면 ssl_protocols, ssl_ciphers 등을 수정해 봅니다.

        ssl_protocols TLSv1 TLSv1.1;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AESGCM:HIGH:!aNULL:!MD5;

안됩니다!

 

        #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AESGCM:HIGH:!aNULL:!MD5;

됩니다!

 

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AESGCM:HIGH:!aNULL:!MD5;

됩니다!

 

Nginx의 ssl_protocols 기본은

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

이기 때문입니다.