主題2.09:HTTPサーバーとプロキシサーバー

  • 2023年3月24日
  • 2023年4月9日
  • IT

2.09.1 Apache HTTPサーバーの設定と管理

Apache

設定ファイル

RedHat系 → /etc/httpd/conf/httpd.conf
Debian系 → /etc/apache2/apache2.conf

制御用コマンド

RedHat系 → 「apachectl」
Debian系 → 「apache2ctl」

httpd.confの書式

ディレクティブ名 設定値

・<Files ファイル名>…</Files>
ファイルごとの設定を行う場合

・<Directory ディレクトリ名>…</Directory>
ディレクトリごとの設定を行う場合

・<Location URL>…</Location>
URLごとの設定を行う場合

・<IFModule モジュール>…</IFModule>
モジュールごとの設定を行う場合

httpdコマンド

Apacheに組み込まれているモジュールを確認できる
httpd [オプション]

Apache2.4の主なモジュール

httpd.confのディレクティブ

基本設定およびコンテンツに関する主なディレクティブ

外部設定ファイルに関するディレクティブ

「Server」で始まる主なディレクティブ

サーバ処理関連のディレクティブ

ログ関連のディレクティブ

BASIC認証とダイジェスト認証

BASIC認証とダイジェスト認証に関するディレクティブ

BASIC認証のユーザ管理

htpasswd [オプション] ファイル名 ユーザ名

ダイジェスト認証のユーザ管理

htdigest [-c] ファイル名 認可領域名 ユーザ名

Requireディレクティブ

書式

Require [not] エンティティ 値

複数の条件を指定したい場合

2.09.2 OpenSSLとHTTPSの設定

SSL/TLS

ApacheでSSL/TLSを利用する際の主な流れ

1. 秘密鍵を作成する
例)秘密鍵のファイル名を「server.key」、アルゴリズムをRSA、鍵長を2048bitで作成
openssl genrsa -out server.key 2048
※genrsaサブコマンドはRSA鍵のみ、gendsaサブコマンドはDSA鍵のみを作成するので、アルゴリズムを指定できるgenpkeyサブコマンドに置き換えられています。

2. サーバ証明書を認証局に作成してもらう為、CSR(証明書の署名要求)を作成する
作成されるCSRには、秘密鍵の対となる公開鍵の情報が含まれます。
例)秘密鍵「server.key」を使用し、CSRをファイル名「server.csr」として作成
openssl req -new -key server.key -out server.csr
※このコマンドを実行すると、プロンプト上で「組織名」「住所」「SSL/TLSサーバのFQDN」などの入力が求められます。
また作成されるCSRには、秘密鍵「server.key」の対となる公開鍵の情報が含まれます。

3. 認証局にCSRを提出し、その後、中間CA証明書とサーバ証明書が認証局より発行される

4. 秘密鍵と中間CA証明書、サーバ証明書をサーバの所定の場所へ設置し、ApacheのSSL用の設定ファイル「ssl.conf」でそれぞれのファイルを指定する

「ssl.conf」の主なディレクティブ

2.09.3 nginxの設定と管理

Nginx

設定ファイル

/etc/nginx/nginx.conf(メイン)
/etc/nginx/conf.d

コマンド

nginx -s reload → Nginxの設定を再読み込みする
nginx -t → nginx.confファイルの構文をチェック

Nginxの主なディレクティブ

nginx.confの主なディレクティブ

SSL/TLS関連の主なディレクティブ

2.09.4 Squidの設定と管理

Squid

squidclientコマンド

Squidの設定ファイルsquid.confの主な設定項目

aclの書式と主なACLタイプ

acl acl名 aclタイプ 文字列|ファイル名