apacheでhttp2対応
なにやらセキュリティ対応とかでapache httpdが2.4.26へ更新。READMEを読んでいるとhttp2がexperimentalではなくて本格対応ですよー、なんてことが書いてありました。それじゃあってことでhttp2を喋ってもらおうじゃねえの。
実は、2015年10月26日のエントリでチャレンジはしているので、インストール手順なんかはそちら。でも実際にやってみると全然http2でお話してくれない。
なんでだ
なんでだといろいろ調べること2日ほど。どうもOpenSSLのALPN対応ができていないからだとわかる。RHEL7のyumで取ってくるOpenSSLは1.0.1eで、ALPN対応は1.0.2から。なのでopensslの最新をソースからビルドしてapacheをmakeする。
OpenSSLをビルド
ソースをダウンロードして展開。configしてmake。この記事を書いた時点での最新は1.1.0fです。
$ tar -zxvf openssl-1.1.0f.tar.gz $ cd openssl-1.1.0f $ ./config shared zlib $ make # make install
Apacheを再configure
上記でインストールしたOpenSSLは/usr/localへ入ってくるのでそちらを参照するようにしてApacheを再configureする。
$ export CFLAGS=-I/usr/local/include $ export LDFLAGS=-L/usr/local/lib64 $ ./configure --enable-ssl=shared --with-ssl=/usr/local/ssl (後略) $ make # make install
ライブラリを参照できるようにする
/usr/local/lib64以下に入っているOpenSSLのライブラリを参照できるように。
/etc/ld.so.conf.d へ 適当なファイルを作成して、そこに以下一行。
/usr/local/lib64
さらにldconfigを叩く。
# ldconfig