公開日: 2012年8月13日 17:51:18
最終更新: 2019年2月26日 07:29:53

Apache 2.4 + OpenSSL インストール

Apache + OpenSSL のインストール

OpenSSL のインストール

OS: Centos7.6 にて再構築中

セキュリティに関わる部分なのでなるべくバージョンの新しいものを、ということで今回もソースからコンパイル & インストールします。
openssl の最新版については公式サイトを確認のこと。
http://www.openssl.org/source/

openssl の共有ライブラリをシステムに登録します。/etc/ld.so.conf.d/openssl.conf を作成します。

共有ライブラリを反映させるため、ldconfig します。

yum で勝手にアップデートされないように、/etc/yum.conf の最後の行に以下の設定を追加します。

exclude=openssl

元の OpenSSL のパスをバックアップしたのち、新しい OpenSSL へのシンボリックリンクを作成します。

ssl サイトにアクセスするたびに Segmentation fault がログに吐かれてなんだかおかしい状態になった。どうやらソースインストールした libssl ではなく、標準インストールされているモジュールを見ているっぽい。

$ ldd /usr/local/httpd/bin/httpd
libssl.so.1.0.0 => <b>/usr/lib/</b>libssl.so.1.0.0
試しに ldconfig して Apache2 を再起動してみたところエラーログが吐かれなくなった。
$ ldconfig /usr/local/openssl/lib/libssl.so.1.0.0
$ /etc/init.d/httpd restart
なので /etc/ld.so.conf.d/openssl.conf を作成して再起動。たぶん大丈夫だと思うけど様子を見てみる。
  ## /etc/ld.so.conf.d/openssl.conf 

Apache Web Server のインストール

あらかじめ必要なライブラリをインストールしておきます。

Apache のビルト&インストール

apache をエラー無く動かすための、最低限の設定をします。

Apache.org から apache をソースインストールします。

インストールオプション

・ –prefix=/usr/local/httpd
httpd をインストールする場所の指定です。

・ –enable-so
モジュールを有効化します。

・ –enable-headers
HTTP リクエスト/応答ヘッダの追加・置換・削除が可能となります。

・ –enable-dav
WebDAV を有効化します。http/https 経由でファイル・フォルダを共有することができます。

・ –enable-deflate
mod_deflate を有効にします。データを送信する前に圧縮してデータ転送の効率化を図ります。

・ –enable-rewrite
リクエストされた URL の動的書き換えを行うモジュールです。=shared としてコンパイルすることで、DSO モジュールとして読み込みます。

・ –with-ssl=/usr/local/openssl
SSLを有効化します。ソースインストールしたOpenSSL のパスを指定します 。

・ –with-suexec-caller=apache
suexec によって CGI などのスクリプトを第三者に不正に実行されないようにします。(ユーザーサイト、VirtualHost 利用時)
ここでは httpdの実行ユーザ(「apache」)がユーザの代わりにスクリプトを実行しますので「apache」を指定します。

・ –with-suexec-docroot=/home
suexecが適用されるディレクトリを指定します。ユーザーディレクトリの格納されている /home を指定、/home 以下にある実行可能なスクリプトが suexec の影響を受けます。

・ –with-suexec-logfile=/var/log/httpd/suexec_log
suexec のログを出力するパスの指定です。access_log 等と同じ場所を指定しておきます。

・ –with-ldap
–enable-ldap=shared
–enable-authnz-ldap=shared
ldap 認証を有効にします。(LDAP によるアカウント管理を行っている場合のみ)

インストール後の設定

apache の設定ファイル(httpd.conf)を編集します。

apache を起動するユーザの設定。

apache を起動するたびに警告が出るのも鬱陶しいので、適当な ServerName を設定。

自動起動とログローテート

サーバ起動時に apache が実行されるよう、起動スクリプトを設定します。
参考: https://blog.apar.jp/linux/3798/

本来なら systemd 対応にしたいところですが、mod_systemd のソースが見つからず…エロい人が何か考えてくれるまでは chkconfig でお茶を濁そうかと(^_^;)

スクリプトのサンプルはソースディレクトリの build/rpm/ 以下にあります。

起動スクリプトの以下の個所をインストールした apache へのパスに修正します。

修正できたら chkconfig コマンドで起動スクリプトとして登録します。

ログの出力先ディレクトリを作成します。
また、ログが肥大化しないようローテートの設定をします。

こちらも実行ファイルへのパスを編集しておきます。


  • クライアント証明書の発行
  • クライアント証明書のインストール(Windows)