OpenSSL Heartbleed問題を対応した時の手順についてです。通常のUNIX系OSでは、OSベンダーからセキュリティアップグレードパッケージが提供されます。その際、yum upgradeだとか、apt-get upgradeだとかでセキュリティ問題をクリアした最新パッケージをご利用できます。しかし、現には古いOSシステムの場合、簡単にyum、あるいはapt-getシステムを利用できないことは少なくありません。
その際は各Softwareのソースコードからビルドする必要があります。本記事では、CentOSにおけるその手順を書きたいと思います。
1.OpenSSLをインストール
・インストールバージョン
当時OpenSSL 1.0.1gが最新。
・インストール詳細
./config --prefix=/usr/local/openssl-1.0.1g shared make make test make install
インストールフォルダ:/usr/local/openssl-1.0.1g
・新しいOpensslモジュールのロード
vi /etc/ld.so.conf.d/openssl101g.conf
/usr/local/openssl-1.0.1g/lib <- この行を追加
その後、インストールしたOpensslモジュールをロードします。
/sbin/ldconfig
2.Apacheをインストール
・インストールバージョン
Apache2.2.27(2.2.xの最新版)
・インストール詳細
./configure --prefix=/usr/local/apache2.2.27 --enable-ssl --with-ssl=/usr/local/openssl-1.0.1g --enable-so --enable-rewrite make make install
インストールフォルダは:/usr/local/apache2.2.27。ここは大事なのはSSLのパス指定ですね。これはやらないとシステムのデフォルト古いOpenSSLを参照してしまうからです。
その他はAPACHE用モジュールも再インストールします。その際は大事なのはconfigureオプションにて
--with-apxs=/usr/local/apache2.2.27/bin/apxs
指定してください。
3.PHPをインストール
・インストールバージョン
php5.2.17(5.2.xの最新版)
・インストール詳細
./configure --prefix=/usr/local/php.5.2.17 --disable-debug --with-apxs2=/usr/local/apache2.2.27/bin/apxs --with-iconv=/usr/local --enable-mbstring --enable-zend-multibyte --with-mysql --with-mysqli --with-pdo-mysql=shared,/usr --with-zlib-dir=/usr/local/lib --with-png-dir=/usr/local/lib --with-jpeg-dir=/usr/local/lib --with-gd --with-freetype-dir=/usr/local --enable-gd-native-ttf --enable-gd-jis-conv --with-mysql-sock=/var/lib/mysql --with-openssl=/usr/local/openssl-1.0.1g make make test make install
インストールフォルダ:/usr/local/php.5.2.17。ここは大事なのは、apsx2とopensslパスの指定です。残りのconfigureオプションは必要に応じて指定してください。
4.新APACHE環境を再起動
一旦現APACHE環境をストップしてください。
/etc/init.d/httpd stop
/etc/init.d/httpdを編集し、apachectlとhttpdのバスを新しいAPACHEフォルダのパスにしてください。
新APACHE環境をスタートします。
/etc/init.d/httpd start
その後は<?php phpinfo(); ?>で新しい環境をご確認してください。
また、OpenSSL Heartbleed問題が解消されているかどうかは下記のサイトでご確認できます。
https://ssltools.websecurity.symantec.com/checker/views/certCheck.jsp
Leave a Comment