Пересборка Nginx с поддержкой TLS v1.3

Thank you for reading this post, don't forget to subscribe!

рас­смот­рим про­цесс пере­с­бор­ки Nginx с под­держ­кой TLS v1.3 - дан­ная воз­мож­ность уже суще­ству­ет, хотя сам стан­дарт TLSv1.3 пока нахо­дит­ся в драфте

Еще в апре­ле 2017 года вышла вер­сия попу­ляр­но­го веб-сер­ве­ра Nginx (1.13.0), кото­рая под­дер­жи­ва­ет новый стан­дарт OpenSSL. Сна­ча­ла я про­сто попы­тал­ся про­пи­сать в кон­фи­гу­ра­ци­он­ном фай­ле с настрой­ка­ми ssl строку:

и пере­чи­тать кон­фиг nginx - оши­бок в кон­со­ли не появи­лось, но при про­вер­ке сай­та на ssllabs по преж­не­му выво­ди­лось сооб­ще­ние, что TLSv1.3 не поддерживается.

На том же ssllabs любез­но ука­за­но, что для про­вер­ки рабо­ты ново­го стан­дар­та исполь­зу­ет­ся чер­но­вик 18-й вер­сии TLSv1.3 - похо­же, без пере­с­бор­ки не обойтись!

Ска­чи­ва­ем и рас­па­ко­вы­ва­ем исход­ни­ки вер­сии Nginx не ниже 1.13.0 (на момент напи­са­ния ста­тьи акту­аль­ная вер­сия 1.13.8):

Ска­чи­ва­ем и рас­па­ко­вы­ва­ем исход­ни­ки openssl 1.1.1 tls1.3 draft 18:

Полу­ча­ем код моду­ля ngx_brotli (подроб­нее о дан­ном моду­ле мож­но почи­тать здесь):

Ска­чи­ва­ем код моду­ля ngx_cache_purge (подроб­но­сти здесь):

При­сту­па­ем к сбор­ке Nginx с под­держ­кой TLS v1.3:

При­ме­ча­ние. На эта­пе кон­фи­гу­ри­ро­ва­ния могут появить­ся ошиб­ки (воз­мож­но, будет не хва­тать каких-то биб­лио­тек), в основ­ном лечат­ся обыч­ным гуглением.

Теперь можем вне­сти прав­ки в кон­фи­гу­ра­ци­он­ный файл ssl.conf (у меня это отдель­ный файл, кото­рый вклю­ча­ет­ся в кон­тек­сте server с помо­щью дирек­ти­вы include) - добав­ля­ем в пере­мен­ную ssl_protocols зна­че­ние TLSv1.3 и добав­ля­ем новые шиф­ры в пере­мен­ную ssl_ciphers:

В моем слу­чае файл цели­ком выгля­дит так:

При­ме­ня­ем изменения:

Про­ве­ря­ем сайт на ssllabs - теперь вы долж­ны уви­деть сооб­ще­ние о вклю­чен­ной под­держ­ке TLS v1.3.