2016年3月15日 Nginx 1.9.12 + LibreSSL 2.3.2 (RedHat EL 6)のお話です。
LibreSSL自体は簡単
./configuremake
sudo make install
です。何も苦労はしません。
Nginx 用に LibreSSLソースのカスタマイズ
chown -R ◯◯ libressl-2.3.2
とか、自分にしておきます。(このケースでは ◯◯ユーザーにしてます)
cd libressl-2.3.2
mkdir -p .openssl/lib
cd .openssl
ln -s ../include .
cp ../ssl/.libs/libssl.a lib/
cp ../crypto/.libs/libcrypto.a lib/
これで、
libressl-2.3.2
┗ .openssl
┣ include (シンボリックリンク ../include)
┗ lib
┣ libssl.a
┗ libcrypto.a
というのがソース・ファイル内に出来たはず。
Nginx のコンパイル1「configure」
nginx-1.9.12libressl-2.3.2
のソースが、同一ディレクトリ上にある場合、
--with-http_ssl_module
--with-openssl=../libressl-2.3.2
--with-ld-opt="-lrt"
のオプションを付与して、./configure を実行してください。
Nginx のコンパイル2「libresslソースの ssl.hを touchせよ!
これをしないで make すると、
- make[1]: *** [../libressl-2.3.2/.openssl/include/openssl/ssl.h] Error 2
という素敵なエラーを出して止まります。
に書かれていますが、libresslソースを nginxから再度ビルドするために、これは最終更新日時を更新しないとダメってことかなぁと思います。
touch ../libressl-2.3.2/.openssl/include/openssl/ssl.h
とするだけ。
nginxのconfigureを再度したならば、再度やってください。
Nginx のコンパイル3「objs/Makefile」をチェックせよ!
./configure時に、 --with-ld-opt="-lrt" を入れていたら大丈夫なはずですが、
make時に
- undefined reference to `clock_gettime'.
という素敵なエラーで止まった場合には、そのオプションがうまく動いていないということになります。
objs/Makefileを次の行に「-lrt」があることを確認してみてください。
-lrt -ldl -lpthread -lcrypt -lpcre ../../libressl/libressl-2.3.\
2/.openssl/lib/libssl.a ../../libressl/libressl-2.3.2/.openssl/lib/libcrypto.a -ldl \
-lz -lgd \
私はここでなかなかコンパイルが通りませんでした。
というのは、 --with-ld-optを2つ書いちゃっていたという事が発覚して... はーーーーー。
Nginx のコンパイル4「make」してインストールせよ!
make
sudo make install
とまぁエラー無く出来たのでした。
ふー。
なお、再度buildや./configureをした場合には
なお、再度buildや./configureをした場合には
touch ../libressl-2.3.2/.openssl/include/openssl/ssl.h
make
sudo make install
のように ssl.h を touchをしないといけなかったです。
これは、ssl.h のタイムスタンプが、configure をしたより後の日時になっていないとエラーがでるのかなーと推測。
のように ssl.h を touchをしないといけなかったです。
これは、ssl.h のタイムスタンプが、configure をしたより後の日時になっていないとエラーがでるのかなーと推測。
その後なんとか、Nginx + LibreSSL + PHP 7 は起動できました。
とはいえ、まだまだ Apacheからの移行には準備が必要です。WebDAVやVirtual Hostやリバースプロキシ、SSL設定、その他諸々〜.. 先は長し... Virtual HostやSSL設定、HTTP/2での接続なんかは簡単にできること(SSL自己証明書で)は確認。それまた別の機会に。
とはいえ、まだまだ Apacheからの移行には準備が必要です。WebDAVやVirtual Hostやリバースプロキシ、SSL設定、その他諸々〜.. 先は長し... Virtual HostやSSL設定、HTTP/2での接続なんかは簡単にできること(SSL自己証明書で)は確認。それまた別の機会に。
2016年3月15日 @kimipooh
0 件のコメント:
コメントを投稿