서버 nginx에서 HTTP/2, TLS 1.3 적용하기
2019.12.07 22:53
일단 먼저 아래 명령어로 nginx 서버와 필요한 패치 파일들을 다운로드 합니다. 대부분의 리눅스 배포판에서 제공되는 OpenSSL의 버전이 1.0.x인 관계로, 저희는 OpenSSL 1.1.1을 별도로 다운로드 받아 이용하도록 합니다.
* 글을 작성하는 시점에서 nginx의 최신 버전은 1.17.6입니다.
wget http://nginx.org/download/nginx-1.17.6.tar.gz
tar xvf nginx-1.17.6.tar.gz && cd nginx-1.17.6
wget -O - https://s2.commania.co.kr/nginx/nginx-openssl-1.1.1.patch | patch -p1
wget -O - https://s2.commania.co.kr/nginx/ssl-chacha-priority.patch | patch -p1 -d openssl-1.1.1d/
wget -O - https://s2.commania.co.kr/nginx/ssl-tls13.patch | patch -p1 -d openssl-1.1.1d/
패치가 모두 적용되었으면 아래 명령어로 nginx 서버를 컴파일 합니다. (볼드체 한 부분이 중요합니다.)
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-file-aio --without-http_memcached_module --without-http_upstream_hash_module --without-http_upstream_ip_hash_module --without-http_upstream_least_conn_module --without-http_upstream_keepalive_module --without-http_ssi_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_v2_module --with-openssl=./openssl-1.1.1d --with-openssl-opt='-DOPENSSL_NO_HEARTBEATS enable-ec_nistp_64_gcc_128 enable-weak-ssl-ciphers'
make -j4
sudo make install
이제 nginx의 설치가 끝났습니다. HTTP/2 및 TLS1.3 적용을 원하는 host의 conf 파일에서, 아래와 같이 설정을 추가합니다. 볼드체 한 부분이 중요합니다.
server {
listen 111.111.111.111:443 ssl http2;
ssl_certificate /etc/nginx/인증서위치.crt;
ssl_certificate_key /etc/nginx/개인키위치.key;ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:kEDH+AESGCM:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:SRP-RSA-AES-128-CBC-SHA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256;
파일을 모두 수정하고 nginx를 reload 하시면 HTTP/2 및 TLS1.3 적용이 완료됩니다. 테스트는 SSLLabs에서 가능합니다.
* 본 사이트는 HTTP/2 및 TLS1.3을 모두 사용중입니다.
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
» | nginx에서 HTTP/2, TLS 1.3 적용하기 | 컴퓨터매니아 | 2142 | 2019.12.07 |
237 | 터미널에서 Office2016 설치하기 | 언제나당당 | 2112 | 2019.08.11 |
236 | Ubuntu(19.04)에 “MS Office 2016” 완벽 설치 | 언제나당당 | 4470 | 2019.08.07 |
235 | PlayonLinux로 한컴오피스 2014 설치하기 | 언제나당당 | 2446 | 2019.08.06 |
234 | Linux에서 Playonlinux없이 Windows 용 Program 설치하기 1 | 언제나당당 | 1945 | 2019.08.06 |
233 | Comodo Antivirus for Linux | 성민컴퓨터 | 775 | 2018.10.17 |
232 | V43 Qtopia 펌웨어 인증받기 | 컴퓨터매니아 | 945 | 2017.12.24 |
231 | 파이어 폭스 빠르게 3 | 구엘프 | 1594 | 2017.02.16 |
230 | adobe flash plugin 때문에 | 구엘프 | 1083 | 2017.01.21 |
229 | open suse에서 좀 더 빠르게 | 구엘프 | 1110 | 2016.11.12 |
228 | 리눅스에서 유선 랜 인터페이스 정보 | 성민컴퓨터 | 1230 | 2016.06.24 |
227 | 바탕화면에 있는 아이콘 비우기 | 성민컴퓨터 | 1062 | 2016.06.18 |
226 | Mozlia Thunderbird 에서 메일계정 등록 1 | 성민컴퓨터 | 877 | 2016.06.17 |
225 | 리눅스에서 HP 례이저 프린트 설치 2 | 성민컴퓨터 | 825 | 2016.06.17 |
224 | 짧은팁 타이핑중터치패드 비활성화 1 | 야밤 | 705 | 2016.06.13 |
223 | Polaris OS 설치 2 | 성민컴퓨터 | 1796 | 2016.06.11 |
222 | Conky 테마 사이트 | 성민컴퓨터 | 1105 | 2016.06.09 |
221 | 리눅스 테마 2 | 성민컴퓨터 | 1022 | 2016.06.09 |
220 | Dock 프로그램 설정 2 | 성민컴퓨터 | 848 | 2016.06.09 |
219 | Dock 프로그램 7 | 성민컴퓨터 | 1391 | 2016.06.08 |