第14章 Web サーバー

Web サーバーは、Web 上でクライアントにコンテンツを提供するネットワークサービスです。通常これは Web ページを意味しますが、他のドキュメントも提供されます。Web サーバーは、ハイパーテキストトランスポートプロトコル (HTTP) を使用するため、HTTP サーバーとも呼ばれます。

14.1. Apache HTTP サーバー

Red Hat Enterprise Linux 7 で利用可能な Web サーバーは、バージョン 2.4 の Apache HTTP Server である httpd です。これは、Apache Software Foundation により開発されたオープンソースの Web サーバーです。
以前の Red Hat Enterprise Linux のリリースからアップグレードする際には、httpd サービスの設定も同様に更新する必要があります。本項では、新しく追加された機能のいくつか、 Apache HTTP Server 2.4 とバージョン 2.2 の重要な違い、古い設定ファイルの更新方法について説明します。

14.1.1. 注目すべき変更点

Red Hat Enterprise Linux 6 と比較して Red Hat Enterprise Linux 7 の Apache HTTP Server には以下の変更があります。
httpd サービスの制御
SysV init スクリプトからの移行に伴い、サーバー管理者は service コマンドの代わりに apachectl コマンドと systemctl コマンドを使用してサービスを制御することが推奨されます。以下の例は、 httpd サービスに固有です。
コマンド
service httpd graceful
は、
apachectl graceful
に置き換えられます。httpd 用の systemd ユニットファイルは、以下のように init スクリプトとは異なる動作をします。
  • サービスがリロードされると、デフォルトで正常な再起動が使用されます。
  • サービスが停止されると、デフォルトで正常な停止が使用されます。
コマンド
service httpd configtest
apachectl configtest
により置き換えられます。
Private /tmp
システムのセキュリティーを高めるため、systemd ユニットファイルは httpd デーモンを実行してプライベートの /tmp ディレクトリーを使用します。これは、システムの /tmp ディレクトリーとは別のものです。
設定レイアウト
モジュールをロードする設定ファイルは、/etc/httpd/conf.modules.d/ ディレクトリーにあります。このディレクトリーには、php などの追加的にロードできる httpd 用モジュールを提供するパッケージによりファイルが配置されます。/etc/httpd/conf/httpd.conf ファイルのメインセクションよりも前の Include ディレクティブは、/etc/httpd/conf.modules.d/ ディレクトリー内にファイルを含めるために使用されます。つまり、conf.modules.d/ 内のすべての設定ファイルは httpd.conf のメイン部分よりも先に処理されます。/etc/httpd/conf.d/ ディレクトリー内のファイルに対する IncludeOptional ディレクティブは、httpd.conf ファイルの最後に配置されます。したがって、/etc/httpd/conf.d/ 内のファイルは、httpd.conf のメイン部分の後に処理されます。
httpd パッケージ自体は、追加の設定ファイルをいくつか提供しています。
  • /etc/httpd/conf.d/autoindex.conf: これ は mod_autoindex ディレクトリーのインデックス作成を設定します。
  • /etc/httpd/conf.d/userdir.conf — これにより、http://example.com/~username/ などのユーザーディレクトリーへのアクセスが設定されます。このようなアクセスは、デフォルトではセキュリティーのために無効になっています。
  • /etc/httpd/conf.d/welcome.conf — 以前のリリースと同様に、コンテンツがない場合は、http://localhost/ で表示される「ようこそ」ページが設定されます。
デフォルト設定
最小限の httpd.conf ファイルがデフォルトで提供されるようになりました。TimeoutKeepAlive といった一般的な設定は、デフォルトでは明示的に設定されることはなくなりました。代わりに、デフォルト設定はハードコーディングされています。このハードコーディングされた全設定ディレクティブ用のデフォルト設定は、マニュアルで指定されています。詳細は、「インストールできるドキュメント」 を参照してください。
互換性がない構文の変更
既存の設定を httpd 2.2 から httpd 2.4 に移行する場合は、httpd 設定の構文に後方互換性がない複数の変更が行われため、変更が必要になります。http://httpd.apache.org/docs/2.4/upgrading.html のアップグレードの詳細については、以下の Apache ドキュメントを参照してください。
プロセスモデル
Red Hat Enterprise Linux の以前のリリースでは、異なる マルチプロセスモデル (MPM) が異なる httpd バイナリーとして利用可能となっていました。つまり、分岐モデルの prefork/usr/sbin/httpd として、またスレッドベースのモデルである worker/usr/sbin/httpd.worker としてしました。
Red Hat Enterprise Linux 7 では、単独の httpd バイナリーのみが使われ、3 つの MPM はロード可能なモジュール (worker、prefork (デフォルト)、および event) として利用可能です。必要に応じて、コメント文字 # を追加および削除して 3 つの MPM モジュールの 1 つだけがロードされるよう設定ファイル /etc/httpd/conf.modules.d/00-mpm.conf を編集します。
パッケージ変更
LDAP 認証および承認の各モジュールは、個別のサブパッケージ mod_ldap で提供されています。新たなモジュール mod_session と関連のヘルパーモジュールは、新サブパッケージ mod_session で提供されています。mod_proxy_htmlmod_xml2enc の新モジュールは、新サブパッケージ mod_proxy_html で提供されています。これらのパッケージはすべて Optional チャンネルにあります。

注記

Optional および Supplementary チャンネルをサブスクライブする前に、対象範囲の詳細 を確認してください。これらのチャンネルからパッケージをインストールする場合は、 Red Hat カスタマーポータルの 証明書ベースの管理を使用して、Optional および Supplementary チャンネル、-devel パッケージにアクセスする方法 の記事で説明してあるステップにしたがってください。
ファイルシステムのレイアウトのパッケージ
/var/cache/mod_proxy/ ディレクトリーは提供されなくなりました。代わりに、/var/cache/httpd/ ディレクトリーが proxy および ssl サブディレクトリーとパッケージ化されています。
httpd と提供されていたパッケージ化されたコンテンツは、/var/www/ から /usr/share/httpd/ に移動しています。
  • /usr/share/httpd/icons/ — ディレクトリーインデックスで使用されるアイコンセットを含むディレクトリー (以前は /var/www/icons/) は /usr/share/httpd/icons/ に変更されました。デフォルト設定では http://localhost/icons/ で利用可能です。アイコンの場所と利用可能性は、/etc/httpd/conf.d/autoindex.conf ファイルで設定可能です。
  • /usr/share/httpd/manual//var/www/manual//usr/share/httpd/manual/ に変更されました。httpd-manual パッケージに含まれるこのディレクトリーには httpd の HTML バージョンのマニュアルが含まれます。このパッケージがインストールされている場合は、http://localhost/manual/ で利用可能です。マニュアルの場所と利用可能性は /etc/httpd/conf.d/manual.conf ファイルで設定可能です。
  • usr/share/httpd/error/: /var/www/error//usr/share/httpd/error/ に移動しました。カスタムの複数言語の HTTP エラーページです。デフォルトでは設定されておらず、設定ファイルの例は /usr/share/doc/httpd-VERSION/httpd-multilang-errordoc.conf で提供されています。
認証、認可、およびアクセス制御
認証や認可、さらにはアクセス制御に使用される設定ディレクティブは、大幅に変更されました。OrderDeny および Allow の各ディレクティブを使用している既存の設定ファイルは、新たな Require 構文を使うようにしてください。詳細は、http://httpd.apache.org/docs/2.4/howto/auth.html の Apache ドキュメントを参照してください。
suexec
システムのセキュリティーを改善するために、suexec バイナリーは root でインストールされなくなりました。代わりに、ファイルシステム機能ビットセットにより、限定的なパーミッションセットを許可できます。この変更と共に、suexec バイナリーは /var/log/httpd/suexec.log ログファイルを使わないようになりました。代わりに、ログメッセージは syslog に送信されます。デフォルトでは、これらのメッセージは /var/log/secure ログファイルに表示されます。
モジュールインターフェース
httpd モジュールインターフェースの変更のため、httpd 2.2 に対して構築されたサードパーティーのバイナリーモジュールは、httpd 2.4 と互換性がありません。このようなモジュールは、必要に応じて httpd 2.4 モジュールインターフェース用に調整し、再構築する必要があります。バージョン 2.4 の API 変更の詳細な一覧は、http://httpd.apache.org/docs/2.4/developer/new_api_2_4.html で参照できます。
ソースからのモジュール構築に使用される apxs バイナリーは、/usr/sbin/apxs から /usr/bin/apxs に移動しました。
削除されたモジュール
Red Hat Enterprise Linux 7 で削除された httpd モジュールは以下のとおりです。
mod_auth_mysql、mod_auth_pgsql
httpd 2.4 は、mod_authn_dbd モジュールで SQL データベース認証サポートを内部で提供します。
mod_perl
mod_perl はアップストリームでは、httpd 2.4 で公式にサポートされていません。
mod_authz_ldap
httpd 2.4 は、mod_authnz_ldap を使用してサブパッケージ mod_ldap の LDAP サポートを提供します。

14.1.2. 設定の更新

Apache HTTP サーバーバージョン 2.2 の設定ファイルを更新するには、以下の手順にしたがいます。
  1. モジュールは変更されている可能性があるため、すべてのモジュール名が正しいことを確認してください。名前変更されたモジュールそれぞれについて LoadModule ディレクティブを調節します。
  2. サードパーティーのモジュールは読み込みを試行する前にすべて再コンパイルをします。これは一般的に認証と権限付与のモジュールに該当します。
  3. mod_userdir モジュールを使用する場合は、 ディレクトリー名 (通常 public_html) を示す UserDir ディレクティブが備わっていることを確認します。
  4. Apache HTTP Secure Server を使用する場合は、Secure Sockets Layer (SSL) プロトコルの有効化に関する重要な情報について 「mod_ssl モジュールの有効化」 を参照してください。
以下のコマンドを使用すると、設定エラーの可能性をチェックすることができます。
~]# apachectl configtest
Syntax OK
Apache HTTP サーバーの設定をバージョン 2.2 から 2.4 に更新する方法の詳細については、http://httpd.apache.org/docs/2.4/upgrading.html を参照してください。

14.1.3. httpd サービスの実行

このセクションでは、Apache HTTP サーバーの起動、停止、再起動、および現在のステータスのチェック方法を説明しています。httpd サービスを有効にするには、まず httpd がインストールされていることを確認します。以下のコマンドを使用します。
~]# yum install httpd
ターゲットの概念と Red Hat Enterprise Linux 内のシステムサービスの管理方法全般についての詳細は、10章systemd によるサービス管理 を参照してください。

14.1.3.1. サービスの起動

httpd サービスを実効するには、シェルプロンプトで root として以下のコマンドを入力します。
~]# systemctl start httpd.service
起動時にサービスを自動的にスタートしたい場合には、以下のコマンドを入力します。
~]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

注記

Apache HTTP サーバーをセキュアサーバーとして実行している場合、暗号化したプライベート SSL キーを使用すると、マシンが起動した後にパスワードを要求される可能性があります。

14.1.3.2. サービスの停止

実行中の httpd サービスを停止するには、シェルプロンプトで root として以下を入力します。
~]# systemctl stop httpd.service
ブート時にサービスが自動的に起動しないようにする場合は、以下を入力します。
~]# systemctl disable httpd.service
Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.

14.1.3.3. サービスの再起動

実行中の httpd サービスを再起動する方法は、3 通りあります。
  1. サービスを完全に再起動するには、root で以下のコマンドを入力します。
    ~]# systemctl restart httpd.service
    これで実行中の httpd サービスが停止し、直ちに再起動します。このコマンドは、PHP のような動的に読み込まれたモジュールをインストールもしくは削除した後に使ってください。
  2. 設定のリロードだけを行うには、root で以下のコマンドを入力します。
    ~]# systemctl reload httpd.service
    これで実行中の httpd サービスが設定ファイルを再読み込みします。現在プロセス中の要求はいずれも割り込みされるので、クライアントのブラウザーがエラーメッセージを表示したり、ページの一部のみが表示される可能性があります。
  3. アクティブな要求に影響を与えずに設定をリロードするには、root で以下のコマンドを入力します。
    ~]# apachectl graceful
    これにより、実行中の httpd サービスは設定ファイルをリロードします。現在処理中の要求は、いずれも古い設定を使用し続けます。
Red Hat Enterprise Linux 7 でシステムサービスを管理する詳細情報については、10章systemd によるサービス管理 を参照してください。

14.1.3.4. サービスステータスの確認

httpd サービスが実行中であることを確認するには、シェルプロンプトに以下を入力します。
~]# systemctl is-active httpd.service
active

14.1.4. 設定ファイルの編集

httpd サービスは開始後にデフォルトで、表14.1「httpd サービスの設定ファイル」 に一覧表示してある場所から設定を読み取ります。

表14.1 httpd サービスの設定ファイル

パス詳細
/etc/httpd/conf/httpd.conf主要設定ファイル
/etc/httpd/conf.d/主要設定ファイル内に含まれている設定ファイル用の補助ディレクトリー
デフォルト設定はほとんどの状況に適合しますが、重要な設定オプションをいくつか知っておくと役に立ちます。変更はいかなるものでも、効果が反映されるには最初にサーバーを再起動する必要があることに注意してください。httpd サービスの再起動方法の詳細については 「サービスの再起動」 を参照してください。
設定でエラーの可能性をチェックするには、シェルプロンプトで以下を入力します。
~]# apachectl configtest
Syntax OK
失敗からの復旧をより簡単にするために、編集する前にオリジナルファイルのコピーを作成しておくことをお勧めします。

14.1.5. モジュールを使った作業

モジュラーアプリケーションである httpd サービスは、必要に応じて実行時に動的にロードまたはアンロードできる複数の Dynamic Shared Objects (動的共有オブジェクト) (DSO) と一緒に配布されます。Red Hat Enterprise Linux 7 では、これらのモジュールは /usr/lib64/httpd/modules/ 内に配置されています。

14.1.5.1. モジュールのロード

特定の DSO モジュールをロードするには、LoadModule ディレクティブを使用します。個別のパッケージで提供されるモジュールでは多くの場合、設定ファイルが /etc/httpd/conf.d/ ディレクトリーにあることに注意してください。

例14.1 mod_ssl DSO のロード

LoadModule ssl_module modules/mod_ssl.so
操作が終了したら、Web サーバーを再起動して設定を再読み込みします。httpd サービスの再起動の方法については 「サービスの再起動」 を参照してください。

14.1.5.2. モジュールの書き込み

新規の DSO モジュールを作成する場合は、httpd-devel パッケージがインストールされていることを確認してください。確認するには、root で以下のコマンドを入力します。
~]# yum install httpd-devel
このパッケージには、モジュールをコンパイルするために必要なファイル、ヘッダーファイル、および APache eXtenSion (apxs) ユーティリティーが含まれています。
書き込みが終了したら、以下のコマンドでモジュールをビルドできます。
~]# apxs -i -a -c module_name.c
ビルドが成功すると、Apache HTTP サーバーで配布されている他のモジュールと同様にこのモジュールをロードできるはずです。

14.1.6. 仮想ホストのセットアップ

Apache HTTP サーバーに組み込まれている仮想ホストにより、サーバーは要求される IP アドレス、ホスト名、またはポートに基づいて異なる情報を提供できます。
名前ベースの仮想ホストを作成するには、まず設定ファイルの例である /usr/share/doc/httpd-VERSION/httpd-vhosts.conf/etc/httpd/conf.d/ ディレクトリーにコピーし、@@Port@@@@ServerRoot@@ のプレースホルダーの値を置き換えます。例14.2「仮想ホスト設定のサンプル」 にあるように、実際の要件に合わせてオプションをカスタマイズします。

例14.2 仮想ホスト設定のサンプル

<VirtualHost *:80>
    ServerAdmin webmaster@penguin.example.com
    DocumentRoot "/www/docs/penguin.example.com"
    ServerName penguin.example.com
    ServerAlias www.penguin.example.com
    ErrorLog "/var/log/httpd/dummy-host.example.com-error_log"
    CustomLog "/var/log/httpd/dummy-host.example.com-access_log" common
</VirtualHost>
ServerName はマシンに割り当てられている有効な DNS 名である必要があることに注意してください。<VirtualHost> コンテナーは高度にカスタマイズ可能で、メインサーバー設定内で利用できるほとんどのディレクティブを受け付けます。このコンテナー内でサポートされていないディレクティブには UserGroup があり、これらは SuexecUserGroup に置き換えられています。

注記

仮想ホストがデフォルト以外のポートでリッスンするように設定する場合は、/etc/httpd/conf/httpd.conf ファイルのグローバル設定で Listen ディレクティブを適切に更新することを忘れないでください。
新規に作成された仮想ホストをアクティブ化するには、Web サーバーを再起動する必要があります。httpd サービスを再起動する方法については、「サービスの再起動」 を参照してください。

14.1.7. SSL サーバーのセットアップ

Secure Sockets Layer (セキュアソケットレイヤー) (SSL) は暗号化プロトコルであり、サーバーとクライアント間の安全な通信を可能にします。その拡張および改善バージョンである Transport Layer Security (トランスポートレイヤーセキュリティ) (TLS) と共に、SSL はプライバシーとデータの整合性を保証します。Apache HTTP Server は、SSL/TLS サポートを提供するために OpenSSL ツールキットを使用するモジュールである mod_ssl と共に、一般的に SSL サーバーと呼ばれます。また、Red Hat Enterprise Linux は、TLS 実装としての Mozilla NSS の使用をサポートします。Mozilla NSS のサポートは mod_nss モジュールにより提供されます。
傍受できる人は誰でも読み取りと修正が可能な HTTP 接続とは異なり、HTTP を介した SSL/TLS (HTTPS と呼ばれます) を使用すると、送信されたコンテンツの検査や修正を阻止できます。本項では、Apache HTTP Server 設定内でこのモジュールを有効にする方法についての基本情報を提供し、秘密鍵と自己署名の証明書の生成プロセスについて説明します。

14.1.7.1. 証明書とセキュリティーの概要

安全な通信は鍵の使用に基づいています。従来の symmetric cryptography (対称型暗号化) では、トランザクションの両方でお互いの通信の解読に使用可能な同一の鍵を備えています。それに対し、パブリックの asymmetric cryptography (非対称型暗号化) では、2 つの鍵が共存します。秘密鍵 は秘密として守られて、公開鍵 は通常、公共と共有されます。公開鍵でエンコードされたデータは秘密鍵でのみデコードされるのに対し、秘密鍵でエンコードされたデータは逆に公開鍵でのみデコードできます。
SSL を使用して安全な通信を提供するためには、SSL サーバーは Certificate Authority (CA) (認証局) で署名された電子証明書を使用する必要があります。証明書はサーバーの様々な属性 (サーバーのホスト名、企業の名前、その住所など) と CA の秘密鍵で生成した署名を一覧表示します。この証明書は特定の認証局が証明書に署名したこと、また証明書がいかなる方法でも修正されていないことを保証するものです。
Web ブラウザーは新規の SSL 接続を確立する際に、Web サーバーから提供される証明書をチェックします。証明書に信頼できる CA からの署名がない場合や、証明書に表記してあるホスト名が接続確立で使用されたホスト名と一致しない場合は、Web ブラウザーはそのサーバーとの交信を拒否して、通常はユーザーに適切なエラーメッセージを表示します。
デフォルトでは、ほとんどのウェブブラウザーが広く使用されている認証局のグループを信用するように設定されています。そのため、セキュアサーバーをセットアップする時には適切な CA (認証局) を選択すべきです。そうすることで、対象ユーザーは接続を信頼できますが、そうでない場合はエラーメッセージが表示されて、手動で証明書を受理する必要があります。証明書のエラーメッセージを無視するようにユーザーに推奨することは攻撃者の侵略を許すことにつながるので、できる限り信頼できる CA を使用してください。この件に関する詳細情報は、表14.2「一般的な Web ブラウザーで使用される CA 一覧に関する情報」 を参照してください。

表14.2 一般的な Web ブラウザーで使用される CA 一覧に関する情報

SSL サーバーをセットアップする際には、証明書要求と秘密鍵を生成してから、証明書要求と企業の識別証明と支払いを認証局に送ります。認証局は証明書要求と識別を確認すると、サーバーで使用できる署名付きの証明書を送ってきます。その他の方法として、CA 署名のない自己署名の証明書を作成することができますが、これはテスト目的のみに使用すべきものです。

14.1.8. mod_ssl モジュールの有効化

mod_ssl を使用して SSL または HTTPS サーバーをセットアップする場合は、別のアプリケーションまたはモジュール (mod_nss など) で同じポートを使用するよう設定できません。HTTPS のデフォルトポートはポート 443 です。
mod_ssl モジュールと OpenSSL ツールキットを使用して SSL サーバーをセットアップするには、mod_ssl および openssl パッケージをインストールします。root で以下のコマンドを入力します。
~]# yum install mod_ssl openssl
これにより、中心となる Apache HTTP サーバー設定ファイルにデフォルトで含まれている /etc/httpd/conf.d/ssl.confmod_ssl 設定ファイルが作成されます。このモジュールを読み込むには、「サービスの再起動」 にあるように httpd サービスを再起動します。

重要

POODLE: SSLv3 脆弱性 (CVE-2014-3566)』 で示された脆弱性のため、Red Hat は、SSL を無効にし、TLSv1.1 または TLSv1.2 のみを使用することを推奨します。後方互換性は、TLSv1.0 を使用して実現できます。Red Hat がサポートする多くの製品は SSLv2 または SSLv3 プロトコルを使用するか、デフォルトでそれらのプロトコルを有効にできます。ただし、SSLv2 または SSLv3 を使用することが強く推奨されます。

14.1.8.1. mod_ssl での SSL および TLS の有効化および無効化

SSL および TLS プロトコルの特定のバージョンを有効および無効にするには、設定ファイルの ## SSL Global Context セクションに SSLProtocol ディレクティブを追加し、他のすべての部分でそのディレクティブを削除するか、すべての VirtualHost セクションの # SSL Protocol support の下にあるデフォルトエントリーを編集することによりグローバルで設定します。ドメインごとの VirtualHost セクションで指定しない場合、設定はグローバルセクションから継承されます。プロトコルバージョンが確実に無効になるように、管理者は SSLProtocol を、SSL Global Context セクションでのみ指定するか、ドメインごとのすべての VirtualHost セクションで指定する必要があります。

手順14.1 SSLv2 および SSLv3 の無効化

すべての VirtualHost セクションで SSL バージョン 2 および SSL バージョン 3 を無効にするには (SSL バージョン 2 および SSL バージョン 3 以外のすべてを有効にすることを意味します)、以下の手順を実行します。
  1. root/etc/httpd/conf.d/ssl.conf ファイルを開き、SSLProtocol ディレクティブのすべてのインスタンスを検索します。デフォルトでは、設定ファイルに以下のような 1 つのセクションが含まれます。
    ~]# vi /etc/httpd/conf.d/ssl.conf
    #   SSL Protocol support:
    # List the enable protocol levels with which clients will be able to
    # connect.  Disable SSLv2 access by default:
    SSLProtocol all -SSLv2
    このセクションは、VirtualHost セクション内にあります。
  2. SSLProtocol 行を以下のように編集します。
    #   SSL Protocol support:
    # List the enable protocol levels with which clients will be able to
    # connect.  Disable SSLv2 access by default:
    SSLProtocol all -SSLv2 -SSLv3
    すべての VirtualHost セクションに対してこのアクションを繰り返します。ファイルを保存し、閉じます。
  3. すべての SSLProtocol ディレクティブが以下のように変更されたことを確認します。
    ~]# grep SSLProtocol /etc/httpd/conf.d/ssl.conf
    SSLProtocol all -SSLv2 -SSLv3
    この手順は、デフォルトの VirtualHost セクションが複数の場合に特に重要になります。
  4. Apache デーモンを以下のように再起動します。
    ~]# systemctl restart httpd
    すべてのセッションが中断されることに注意してください。

手順14.2 TLS 1 以上を除くすべての SSL および TLS プロトコルの無効化

TLS バージョン 1 以上を除くすべての SSL および TLS プロトコルバージョンを無効にするには、以下の手順を実行します。
  1. root/etc/httpd/conf.d/ssl.conf ファイルを開き、SSLProtocol ディレクティブのすべてのインスタンスを検索します。デフォルトでは、設定ファイルに以下のような 1 つのセクションが含まれます。
    ~]# vi /etc/httpd/conf.d/ssl.conf
    #   SSL Protocol support:
    # List the enable protocol levels with which clients will be able to
    # connect.  Disable SSLv2 access by default:
    SSLProtocol all -SSLv2
  2. SSLProtocol 行を以下のように編集します。
    #   SSL Protocol support:
    # List the enable protocol levels with which clients will be able to
    # connect.  Disable SSLv2 access by default:
    SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
    ファイルを保存してから閉じます。
  3. 以下のように変更を確認します。
    ~]# grep SSLProtocol /etc/httpd/conf.d/ssl.conf 
    SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
  4. Apache デーモンを以下のように再起動します。
    ~]# systemctl restart httpd
    すべてのセッションが中断されることに注意してください。

手順14.3 SSL および TLS プロトコルのステータスのテスト

有効または無効な SSL および TLS のバージョンを確認するには、openssl s_client -connect コマンドを使用します。コマンドの形式は以下のようになります。
openssl s_client -connect hostname:port -protocol
ここで、port はテストするポートであり、protocol はテストするプロトコルバージョンです。ローカルで実行されている SSL サーバーをテストするには、ホスト名として localhost を使用します。たとえば、SSLv3 が有効であるかどうかを確認するためにセキュアな HTTPS 接続のデフォルトポートであるポート 443 をテストするには、以下のようにコマンドを発行します。
  1. ~]# openssl s_client -connect localhost:443 -ssl3
    CONNECTED(00000003)
    139809943877536:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1257:SSL alert number 40
    139809943877536:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:596:出力省略
    New, (NONE), Cipher is (NONE)
    Secure Renegotiation IS NOT supported
    Compression: NONE
    Expansion: NONE
    SSL-Session:
        Protocol  : SSLv3出力省略
    上記の出力は、ハンドシェイクが失敗し、暗号化がネゴシエートされなかったことを示しています。
  2. ~]$ openssl s_client -connect localhost:443 -tls1_2
    CONNECTED(00000003)
    depth=0 C = --, ST = SomeState, L = SomeCity, O = SomeOrganization, OU = SomeOrganizationalUnit, CN = localhost.localdomain, emailAddress = root@localhost.localdomain出力省略
    New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
    Server public key is 2048 bit
    Secure Renegotiation IS supported
    Compression: NONE
    Expansion: NONE
    SSL-Session:
        Protocol  : TLSv1.2出力省略
    上記の出力は、ハンドシェイクが失敗せず、暗号化セットがネゴシエートされたことを示しています。
openssl s_client コマンドオプションは、s_client(1) man ページで文書化されています。
SSLv3 の脆弱性とそのテスト方法の詳細については、Red Hat ナレッジベースの記事 『POODLE: SSLv3 脆弱性 (CVE-2014-3566)』 を参照してください。

14.1.9. mod_nss Module の有効化

mod_nss を使用して HTTPS サーバーをセットアップする場合は、mod_ssl がデフォルトで 443 (デフォルトの HTTPS ポート) を使用するため、mod_ssl パッケージをデフォルト設定でインストールできません。可能な限り、このパッケージを削除します。
mod_ssl を削除するには、root で以下のコマンドを入力します。
~]# yum remove mod_ssl

注記

他の目的のために mod_ssl が必要な場合は、443 以外のポートを使用するよう /etc/httpd/conf.d/ssl.conf を変更して、リッスンするポートが 443 に変更されたときに mod_sslmod_nss が競合しないようにします。
1 つのポートを所有できるモジュールは 1 つだけです。したがって、mod_nssmod_ssl は、異なるポートを使用する場合のみ共存できます。このため、mod_nss はデフォルトで 8443 を使用しますが、HTTPS のデフォルトポートはポート 443 です。ポートは Listen ディレクティブと VirtualHost 名またはアドレスで指定されます。
NSS のすべてはトークンに関連付けられます。ソフトウェアトークンは NSS データベースに存在しますが、証明書を含む物理トークンを使用することもできます。OpenSSL では、個別証明書と秘密鍵は PEM ファイルに保持されます。NSS では、これらはデータベースに格納されます。各証明書およびキーはトークンと関連付けられ、各トークンには保護するためにパスワードを設定できます。このパスワードはオプションですが、パスワードが使用される場合、Apache HTTP サーバーはシステムの起動時にユーザーの介入なしでデータベースを開くためにパスワードのコピーを必要とします。

手順14.4 mod_nss の設定

  1. rootmod_nss をインストールします。
    ~]# yum install mod_nss
    これにより、/etc/httpd/conf.d/nss.confmod_nss 設定ファイルが作成されます。/etc/httpd/conf.d/ ディレクトリーは、デフォルトでメインの Apache HTTP Server 設定ファイルに含まれます。モジュールをロードするには、「サービスの再起動」 で説明されているように httpd サービスを再起動します。
  2. root/etc/httpd/conf.d/nss.conf ファイルを開き、Listen ディレクティブのすべてのインスタンスを検索します。
    Listen 8443 行を以下のように編集します。
    Listen 443
    ポート 443HTTPS のデフォルトポートです。
  3. デフォルトの VirtualHost _default_:8443 行を以下のように編集します。
    VirtualHost _default_:443
    デフォルト以外の他のすべての仮想ホストセクション (存在する場合) を編集します。ファイルを保存し、閉じます。
  4. Mozilla NSS では、証明書は/etc/httpd/conf.d/nss.conf ファイルの NSSCertificateDatabase ディレクティブで指定されたサーバー証明書データベースに保存されます。デフォルトでは、パスはインストール時に作成された NSS データベースである /etc/httpd/alias に設定されます。
    デフォルトの NSS データベースを表示するには、以下のコマンドを実行します。
    ~]# certutil -L -d /etc/httpd/alias
    
    Certificate Nickname                                         Trust Attributes
                                                                 SSL,S/MIME,JAR/XPI
    
    cacert                                                       CTu,Cu,Cu
    Server-Cert                                                  u,u,u
    alpha                                                        u,pu,u
    上記のコマンド出力で、Server-Cert はデフォルトの NSSNickname です。-L オプションは、証明書データベース内のすべての証明書を一覧表示するか、指定された証明書に関する情報を表示します。-d オプションは、証明書およびキーデータベースファイルを含むデータベースディレクトリーを指定します。その他のコマンドラインオプションについては、certutil(1) man ページを参照してください。
  5. 別のデータベースを使用するよう mod_nss を設定するには、/etc/httpd/conf.d/nss.conf ファイルの NSSCertificateDatabase 行を編集します。デフォルトファイルの VirtualHost セクション内には以下の行が含まれます。
    #   Server Certificate Database:
    #   The NSS security database directory that holds the certificates and
    #   keys. The database consists of 3 files: cert8.db, key3.db and secmod.db.
    #   Provide the directory that these files exist.
    NSSCertificateDatabase /etc/httpd/alias
    上記のコマンド出力で、alias はデフォルトの NSS データベースディレクトリーである /etc/httpd/alias/ です。
  6. デフォルトの NSS 証明書データベースにパスワードを適用するには、root で以下のコマンドを使用します。
    ~]# certutil -W -d /etc/httpd/alias
    Enter Password or Pin for "NSS Certificate DB":
    Enter a password which will be used to encrypt your keys.
    The password should be at least 8 characters long,
    and should contain at least one non-alphabetic character.
    
    Enter new password:
    Re-enter password:
    Password changed successfully.
  7. HTTPS サーバーをデプロイする前に、認証局 (CA) により署名された証明書を使用して新しい証明書データベースを作成します。

    例14.3 Mozilla NSS データベースへの証明書の追加

    certutil コマンドは、CA 証明書を NSS データベースファイルに追加するために使用されます。
    certutil -d /etc/httpd/nss-db-directory/ -A -n "CA_certificate" -t CT,, -a -i certificate.pem
    上記のコマンドは、certificate.pem という名前の PEM 形式のファイル に保存されている CA 証明書を追加します。-d オプションは証明書およびキーデータベースファイルを含む NSS データベースディレクトリーを指定し、-n オプションは証明書の名前を設定します。-t CT,, は、証明書が TLS クライアントおよびサーバーでの使用に信頼できることを意味します。-A オプションは既存の証明書を証明書データベースに追加します。データベースは、存在しない場合は作成されます。-a オプションは出入力での ASCII 形式の使用を可能にします。-i オプションは、certificate.pem 入力ファイルをコマンドに渡します。
    他のコマンドラインオプションについては、certutil(1) man ページを参照してください。
  8. 秘密鍵を保護するために、NSS データベースはパスワードで保護する必要があります。

    例14.4 Mozilla NSS データベースのパスワード設定

    NSS データベースのパスワードを設定するには、以下のように certutil ツールを使用できます。
    certutil -W -d /etc/httpd/nss-db-directory/
    たとえば、デフォルトのデータベースの場合は、root で以下のコマンドを実行します。
    ~]# certutil -W -d /etc/httpd/alias
    Enter Password or Pin for "NSS Certificate DB":
    Enter a password which will be used to encrypt your keys.
    The password should be at least 8 characters long,
    and should contain at least one non-alphabetic character.
    
    Enter new password: 
    Re-enter password: 
    Password changed successfully.
  9. 以下のように行を NSSPassPhraseDialog ディレクティブで変更して、NSS 内部ソフトウェアトークンを使用するよう mod_nss を設定します。
    ~]# vi /etc/httpd/conf.d/nss.conf
    NSSPassPhraseDialog file:/etc/httpd/password.conf
    これにより、システムの起動時にパスワードを手動で入力する必要がなくなります。ソフトウェアトークンは NSS データベースに存在しますが、証明書を含む物理トークンを使用することもできます。
  10. NSS データベースに含まれる SSL サーバー証明書が RSA 証明書である場合は、NSSNickname パラメーターをコメント解除し、パラメーターが上記の手順 4 で示されたニックネームに一致するようにしてください。
    ~]# vi /etc/httpd/conf.d/nss.conf
    NSSNickname Server-Cert
    NSS データベースに含まれる SSL サーバー証明書が ECC 証明書である場合は、NSSECCNickname パラメーターがコメント解除され、上記の手順 4 で示されたニックネームに一致するようにします。
    ~]# vi /etc/httpd/conf.d/nss.conf
    NSSECCNickname Server-Cert
    NSSCertificateDatabase パラメーターがコメント解除され、上記の手順 4 で示された、または手順 5 で設定された NSS データベースディレクトリーを参照するようにします。
    ~]# vi /etc/httpd/conf.d/nss.conf
    NSSCertificateDatabase /etc/httpd/alias
    /etc/httpd/alias を、使用する証明書データベースへのパスに置き換えます。
  11. root/etc/httpd/password.conf ファイルを作成します。
    ~]# vi /etc/httpd/password.conf
    以下の形式の行を追加します。
    internal:password
    password を、上記の手順 6 で NSS セキュリティーデータベースに適用されたパスワードに置き換えます。
  12. 適切な所有権とパーミッションを /etc/httpd/password.conf ファイルに適用します。
    ~]# chgrp apache /etc/httpd/password.conf
    ~]# chmod 640 /etc/httpd/password.conf
    ~]# ls -l /etc/httpd/password.conf
    -rw-r-----. 1 root apache 10 Dec  4 17:13 /etc/httpd/password.conf
  13. NSS ソフトウェアトークンを使用するよう /etc/httpd/password.confmod_nss を設定するには、/etc/httpd/conf.d/nss.conf を以下のように編集します。
    ~]# vi /etc/httpd/conf.d/nss.conf
  14. 変更を反映するために、「サービスの再起動」 で説明されているように Apache サーバーを再起動します。

重要

POODLE: SSLv3 脆弱性 (CVE-2014-3566)』 で示された脆弱性のため、Red Hat は、SSL を無効にし、TLSv1.1 または TLSv1.2 のみを使用することを推奨します。後方互換性は、TLSv1.0 を使用して実現できます。Red Hat がサポートする多くの製品は SSLv2 または SSLv3 プロトコルを使用するか、デフォルトでそれらのプロトコルを有効にできます。ただし、SSLv2 または SSLv3 を使用することが強く推奨されます。

14.1.9.1. mod_nss での SSL および TLS の有効化および無効化

SSL および TLS プロトコルの特定のバージョンを有効および無効にするには、設定ファイルの ## SSL Global Context セクションに NSSProtocol ディレクティブを追加し、他のすべての部分でそのディレクティブを削除するか、すべての VirtualHost セクションの # SSL Protocol の下にあるデフォルトエントリーを編集することによりグローバルで設定します。ドメインごとの VirtualHost セクションで指定しない場合、設定はグローバルセクションから継承されます。プロトコルバージョンが確実に無効になるように、管理者は NSSProtocol を、SSL Global Context セクションでのみ指定するか、ドメインごとのすべての VirtualHost セクションで指定する必要があります。

手順14.5 mod_nss での TLS 1 以上を除くすべての SSL および TLS プロトコルの無効化

TLS バージョン 1 以上を除くすべての SSL および TLS プロトコルバージョンを無効にするには、以下の手順を実行します。
  1. root/etc/httpd/conf.d/nss.conf ファイルを開き、NSSProtocol ディレクティブのすべてのインスタンスを検索します。デフォルトでは、設定ファイルに以下のような 1 つのセクションが含まれます。
    ~]# vi /etc/httpd/conf.d/nss.conf
    #   SSL Protocol:出力省略
    #   Since all protocol ranges are completely inclusive, and no protocol in the
    #   middle of a range may be excluded, the entry "NSSProtocol SSLv3,TLSv1.1"
    #   is identical to the entry "NSSProtocol SSLv3,TLSv1.0,TLSv1.1".
    NSSProtocol SSLv3,TLSv1.0,TLSv1.1
    このセクションは、VirtualHost セクション内にあります。
  2. NSSProtocol 行を以下のように編集します。
    #   SSL Protocol:
    NSSProtocol TLSv1.0,TLSv1.1
    すべての VirtualHost セクションに対してこのアクションを繰り返します。
  3. Listen 8443 行を以下のように編集します。
    Listen 443
  4. デフォルトの VirtualHost _default_:8443 行を以下のように編集します。
    VirtualHost _default_:443
    デフォルト以外の他のすべての仮想ホストセクション (存在する場合) を編集します。ファイルを保存し、閉じます。
  5. すべての NSSProtocol ディレクティブが以下のように変更されたことを確認します。
    ~]# grep NSSProtocol /etc/httpd/conf.d/nss.conf
    #   middle of a range may be excluded, the entry "NSSProtocol SSLv3,TLSv1.1"
    #   is identical to the entry "NSSProtocol SSLv3,TLSv1.0,TLSv1.1".
    NSSProtocol TLSv1.0,TLSv1.1
    この手順は、 VirtualHost セクションが複数の場合に特に重要になります。
  6. Apache デーモンを以下のように再起動します。
    ~]# service httpd restart
    すべてのセッションが中断されることに注意してください。

手順14.6 mod_nss での SSL および TLS プロトコルのステータスのテスト

mod_nss で有効または無効な SSL および TLS のバージョンを確認するには、openssl s_client -connect コマンドを使用します。rootopenssl パッケージをインストールします。
~]# yum install openssl
openssl s_client -connect コマンドの形式は以下のようになります。
openssl s_client -connect hostname:port -protocol
ここで、port はテストするポートであり、protocol はテストするプロトコルバージョンです。ローカルで実行されている SSL サーバーをテストするには、ホスト名として localhost を使用します。たとえば、SSLv3 が有効であるかどうかを確認するためにセキュアな HTTPS 接続のデフォルトポートであるポート 443 をテストするには、以下のようにコマンドを発行します。
  1. ~]# openssl s_client -connect localhost:443 -ssl3
    CONNECTED(00000003)
    3077773036:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:337:出力省略
    New, (NONE), Cipher is (NONE)
    Secure Renegotiation IS NOT supported
    Compression: NONE
    Expansion: NONE
    SSL-Session:
        Protocol  : SSLv3出力省略
    上記の出力は、ハンドシェイクが失敗し、暗号化がネゴシエートされなかったことを示しています。
  2. ~]$ openssl s_client -connect localhost:443 -tls1
    CONNECTED(00000003)
    depth=1 C = US, O = example.com, CN = Certificate Shack出力省略
    New, TLSv1/SSLv3, Cipher is AES128-SHA
    Server public key is 1024 bit
    Secure Renegotiation IS supported
    Compression: NONE
    Expansion: NONE
    SSL-Session:
        Protocol  : TLSv1出力省略
    上記の出力は、ハンドシェイクが失敗せず、暗号化セットがネゴシエートされたことを示しています。
openssl s_client コマンドオプションは、s_client(1) man ページで文書化されています。
SSLv3 の脆弱性とそのテスト方法の詳細については、Red Hat ナレッジベースの記事 『POODLE: SSLv3 脆弱性 (CVE-2014-3566)』 を参照してください。

14.1.10. 既存の鍵と証明書の使用

以前に鍵と証明書が作成されている場合は、新規で作成するのではなく、既存のファイルを使用するように SSL サーバーを設定することができます。ただし、これが実行できないケースが 2 つだけあります。
  1. IP アドレスまたはドメイン名を変更しているケース。
    証明書は特定の IP アドレスとドメイン名のペアに発行されるものです。これらの値のどちらかが変更されると証明書は無効になります。
  2. VeriSign からの証明書があって、サーバーソフトウェアを変更しているケース。
    広く使用されている認証局である VeriSign は、特定のソフトウェア製品、IP アドレス、およびドメイン名に証明書を発行します。ソフトウェア製品を変更すると証明書が無効になります。
上記のいずれのケースでも、新しい証明書を取得する必要があります。このトピックに関する情報については、「新しい鍵と証明書の生成」 を参照してください。
既存の鍵と証明書を使用する場合は、その関連ファイルを /etc/pki/tls/private/ ディレクトリーと /etc/pki/tls/certs/ ディレクトリーにそれぞれ移動します。これを行うには root で以下のコマンドを入力します。
~]# mv key_file.key /etc/pki/tls/private/hostname.key
~]# mv certificate.crt /etc/pki/tls/certs/hostname.crt
そして、以下の行を /etc/httpd/conf.d/ssl.conf 設定ファイルに追加します。
SSLCertificateFile /etc/pki/tls/certs/hostname.crt
SSLCertificateKeyFile /etc/pki/tls/private/hostname.key
更新済みの設定を読み込むには、「サービスの再起動」 にあるように httpd サービスを再起動します。

例14.5 Red Hat セキュアウェブサーバーからの鍵と証明書の使用

~]# mv /etc/httpd/conf/httpsd.key /etc/pki/tls/private/penguin.example.com.key
~]# mv /etc/httpd/conf/httpsd.crt /etc/pki/tls/certs/penguin.example.com.crt

14.1.11. 新しい鍵と証明書の生成

新しい鍵と証明書のペアを生成するには、システムに crypto-utils パッケージをインストールしておく必要があります。パッケージをインストールするには、root で以下のコマンドを入力します。
~]# yum install crypto-utils
このパッケージは、SSL 証明書と秘密鍵を生成して管理するツールセットを提供し、鍵を生成できる Red Hat Keypair Generation ユーティリティーである genkey を含みます。

重要

有効な証明書を既に所有していて、それを新規のものと置き換える予定の場合は、異なるシリアル番号を指定します。これにより、クライアントのブラウザーがこの変更の通知を受けて予定どおりに新規の証明書に更新して、このページへのアクセスに失敗しないようにします。root でカスタムのシリアル番号で新規の証明書を作成するには、genkey の代わりに、以下のコマンドを使用します。
~]# openssl req -x509 -new -set_serial number -key hostname.key -out hostname.crt

注記

使用中のシステムに特定のホスト名用の鍵ファイルが既に存在する場合は、genkey は開始を拒否します。その場合は、root で以下のコマンドを使用して既存のファイルを削除します。
~]# rm /etc/pki/tls/private/hostname.key
ユーティリティーを実行するには、rootgenkey コマンドの後に該当するホスト名 (たとえば、penguin.example.com) を付けて使用します。
~]# genkey hostname
鍵と証明書の生成を完了するには、以下の手順にしたがいます。
  1. 鍵と証明書を保存する場所を確認します。
    genkey ユーティリティーの実行

    図14.1 genkey ユーティリティーの実行

    Tab キーを使用して Next (次へ) ボタンを選択してから、Enter キーを押すと次の画面を進みます。
  2. updown の矢印キーを使用して、適切な鍵のサイズを選択します。大きな鍵はセキュリティーを向上させますが、サーバーの応答時間も長くなることに注意してください。NIST では、2048 bits の使用を推奨しています。NIST Special Publication 800-131A を参照してください。
    鍵のサイズ選択

    図14.2 鍵のサイズ選択

    終了したら、Tab キーを使用して Next (次へ) ボタンを選択して Enter キーを押すと、ランダムなビットの生成プロセスが開始します。選択した鍵のサイズによっては、これに時間がかかりることもあります。
  3. 証明書要求を認証局に送信するかどうかを決定します。
    証明書要求の生成

    図14.3 証明書要求の生成

    Tab キーを使用して Yes (はい) を選択し、証明書要求を組み立てるか、または No (いいえ) を選択して、自己署名の証明書を生成します。その後に、Enter を押して選択を確定します。
  4. Spacebar (スペースバー) キーを使用すると、秘密鍵の暗号化を有効にする ([*]) か、無効にする ([ ]) 選択ができます。
    秘密鍵の暗号化

    図14.4 秘密鍵の暗号化

    Tab キーを使用して Next (次へ) ボタンを選択してから、Enter キーを押すと次の画面を進みます。
  5. 秘密鍵の暗号化を有効にしている場合は、適切なパスフレーズを入力します。セキュリティーの理由により入力時には文字が表示されませんが、最低でも 5 文字の長さが必要です。
    パスフレーズの入力

    図14.5 パスフレーズの入力

    Tab キーを使用して Next (次へ) ボタンを選択してから、Enter キーを押すと次の画面を進みます。

    重要

    サーバーを開始するには正しいパスフレーズの入力が必要です。それを紛失したり忘れたりした場合は、新しい鍵と証明書を生成しなければなりません。
  6. 証明書詳細のカスタマイズ
    証明書情報の指定

    図14.6 証明書情報の指定

    Tab キーを使用して Next ボタンを選択します。それから Enter を押すと鍵の生成が完了します。
  7. 以前に証明書要求の生成を有効にしていた場合は、それを認証局に送信するようにプロンプトされます。
    証明書要求を送信する方法の指示

    図14.7 証明書要求を送信する方法の指示

    Enter を押してシェルプロンプトに戻ります。
生成が終了したら、鍵と証明書の場所を /etc/httpd/conf.d/ssl.conf 設定ファイルに追加します。
SSLCertificateFile /etc/pki/tls/certs/hostname.crt
SSLCertificateKeyFile /etc/pki/tls/private/hostname.key
最後に、「サービスの再起動」 にあるように httpd サービスを再起動します。すると更新された設定が読み込まれます。

14.1.12. コマンドラインを使用した HTTP および HTTPS 用ファイアウォールの設定

Red Hat Enterprise Linux では、デフォルトで HTTP および HTTPS トラフィックが許可されません。システムが Web サーバーとして機能できるようにするには、firewalld のサポートされたサービスを使用して HTTP および HTTPS トラフィックが必要に応じてファイアウォールを通過できるようにします。
コマンドラインを使用して HTTP を有効にするには、root で以下のコマンドを発行します。
~]# firewall-cmd --add-service http
 success
コマンドラインを使用して HTTPS を有効にするには、root で以下のコマンドを発行します。
~]# firewall-cmd --add-service https
 success
これらの変更は次回のシステム起動後に維持されないことに注意してください。ファイアウォールに永久的な変更を行うには、--permanent オプションを追加してコマンドを繰り返します。

14.1.12.1. コマンドラインを使用した受信 HTTP および HTTPS 向けネットワークアクセスの設定

コマンドラインを使用してファイアウォールが許可するよう設定されているサービスを確認するには、root で以下のコマンドを実行します。
~]# firewall-cmd --list-all
public (default, active)
  interfaces: em1
  sources: 
  services: dhcpv6-client ssh出力省略
デフォルトインストールのこの例では、ファイアウォールは有効ですが、HTTP および HTTPS は通過を許可されていません。
HTTP および HTTP ファイアウォールサービスが有効になると、以下のような services 行が現れます。
services: dhcpv6-client http https ssh
ファイアウォールサービスの有効化または firewalld でのポートのオープンおよびクローズの詳細については、Red Hat Enterprise Linux 7 Security Guide を参照してください。

14.1.13. 関連資料

Apache HTTP サーバーに関する詳細については、以下のリソースを参照してください。

インストールされているドキュメント

  • httpd(8) — コマンドラインオプションの全一覧が含まれている httpd サービスの man ページです。
  • genkey(1)crypto-utils パッケージにより提供される genkey ユーティリティーの man ページです。
  • apachectl(8) — Apache HTTP サーバー制御インターフェースの man ページです。

インストールできるドキュメント

  • http://localhost/manual/ — ディレクティブと利用可能なモジュールの全説明を含む Apache HTTP サーバーの公式ドキュメントです。このドキュメントにアクセスするには、httpd-manual パッケージがインストールしてあり、Web サーバーが稼働している必要があります。
    ドキュメントにアクセスする前に、root で以下のコマンドを実行します。
    ~]# yum install httpd-manual
    ~]# apachectl graceful

オンラインのドキュメント

  • http://httpd.apache.org/ — すべてのディレクティブとデフォルトのモジュールに関するドキュメントが収納された、Apache HTTP サーバーの公式 Web サイトです。
  • http://www.openssl.org/: さらに詳しいドキュメントや FAQ、メーリングリストへのリンク、その他役立つリソースを掲載した OpenSSL のホームページです。