How to get already installed NGINX to use OpenSSL 1.0.2 for ALPN?


I would like to use HTTP/2 and to fully use its capabilities, it needs ALPN (and not NPN). ALPN is bundled in OpenSSL 1.0.2, but NGINX doesn’t seem to use it. I have upgraded everything and currently I am at NGINX 1.10.0 and OpenSSL 1.0.2h.

As you can see in the screenshot above, OpenSSL 1.0.2h is indeed installed on the server as is the latest version of NGINX 1.10.0. OpenSSL was already at 1.0.2h when I upgraded from NGINX 1.9 to 1.10.

Any help to get NGINX to use OpenSSL 1.0.2 or how I can enable ALPN would be greatly appreciated.

Thank you!

PS I have no clue on how I could recompile NGINX. I’ve always simply used apt-get install nginx.

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

  1. rebuiding openssl
$ wget -c
$ tar xf openssl-1.0.2h.tar.gz -C /usr/local/
$ cd /usr/local/openssl-1.0.2h
$ ./config
$ make depend
$ make
$ make test
$ make install
$ mv /usr/bin/openssl /usr/bin/openssl_1.0.1e
$ ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
$ openssl version
OpenSSL 1.0.2h  3 May 2016
  1. rebuild nginx
$ yum -y install pcre-devel
$ tar xf nginx-1.8.1.tar.gz
$ cd nginx-1.8.1
$ ./configure --prefix=/usr/local/nginx \
	--with-http_ssl_module --with-openssl=/usr/local/openssl-1.0.2h/ 

My way to have http2 + alpn on Add jessie-backports repository

deb jessie-backports main

Install openssl with apt-get

apt-get -t jessie-backports install openssl

and then rebuild nginx from source “as is”.

Yeah! supports HTTP/2.0.
ALPN supported.

This comment has been deleted