Apache HTTP Server (httpd) は、Apache License 2.0 の条件でリリースされるフリーでオープンソースのクロスプラットフォームの Web サーバソフトウェアです。Apache は Apache ソフトウェア財団の支援のもと、開発者のオープンコミュニティによって開発・保守されています。
サーバー用 PC に Web 関連パッケージをインストールして、サーバーの各ユーザーアカウント内で Web コンテンツの作成をできるように設定します。
--- OUTLINE ---
Apache HTTP Server (httpd) をインストールおよび設定をする OS は下記のとおりです。
OS | Red Hat Enterprise Linux 9.0 (Plow) | x86_64 |
httpd の設定
Apache HTTP Server httpd と httpd-devel をインストールしました。
[bitwalk@rhel9 ~]$ sudo dnf install httpd httpd-devel [sudo] bitwalk のパスワード: サブスクリプション管理リポジトリーを更新しています。 メタデータの期限切れの最終確認: 3:36:41 時間前の 2022年06月09日 03時26分40秒 に 実施しました。 依存関係が解決しました。 ================================================================================ パッケージ Arch バージョン リポジトリー サイズ ================================================================================ インストール: httpd x86_64 2.4.51-7.el9_0 rhel-9-for-x86_64-appstream-rpms 1.5 M httpd-devel x86_64 2.4.51-7.el9_0 rhel-9-for-x86_64-appstream-rpms 209 k 依存関係のインストール: apr x86_64 1.7.0-11.el9 rhel-9-for-x86_64-appstream-rpms 127 k apr-devel x86_64 1.7.0-11.el9 rhel-9-for-x86_64-appstream-rpms 234 k apr-util x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms 98 k apr-util-bdb x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms 15 k apr-util-devel x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms 80 k cyrus-sasl x86_64 2.1.27-20.el9 rhel-9-for-x86_64-baseos-rpms 77 k cyrus-sasl-devel x86_64 2.1.27-20.el9 rhel-9-for-x86_64-appstream-rpms 117 k expat-devel x86_64 2.2.10-12.el9_0 rhel-9-for-x86_64-appstream-rpms 52 k httpd-filesystem noarch 2.4.51-7.el9_0 rhel-9-for-x86_64-appstream-rpms 17 k httpd-tools x86_64 2.4.51-7.el9_0 rhel-9-for-x86_64-appstream-rpms 88 k libdb-devel x86_64 5.3.28-53.el9 rhel-9-for-x86_64-appstream-rpms 40 k openldap-devel x86_64 2.4.59-4.el9_0 rhel-9-for-x86_64-appstream-rpms 746 k redhat-logos-httpd noarch 90.4-1.el9 rhel-9-for-x86_64-appstream-rpms 18 k 弱い依存関係のインストール: apr-util-openssl x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms 17 k mod_http2 x86_64 1.15.19-2.el9 rhel-9-for-x86_64-appstream-rpms 153 k mod_lua x86_64 2.4.51-7.el9_0 rhel-9-for-x86_64-appstream-rpms 63 k トランザクションの概要 ================================================================================ インストール 18 パッケージ ダウンロードサイズの合計: 3.6 M インストール後のサイズ: 12 M これでよろしいですか? [y/N]: y パッケージのダウンロード: (1/18): apr-util-openssl-1.6.1-20.el9.x86_64.rp 33 kB/s | 17 kB 00:00 : : : (18/18): openldap-devel-2.4.59-4.el9_0.x86_64.r 2.3 MB/s | 746 kB 00:00 -------------------------------------------------------------------------------- 合計 1.7 MB/s | 3.6 MB 00:02 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : apr-1.7.0-11.el9.x86_64 1/18 : : : インストール中 : httpd-devel-2.4.51-7.el9_0.x86_64 18/18 scriptletの実行中: httpd-2.4.51-7.el9_0.x86_64 18/18 scriptletの実行中: httpd-devel-2.4.51-7.el9_0.x86_64 18/18 検証 : cyrus-sasl-2.1.27-20.el9.x86_64 1/18 : : : 検証 : openldap-devel-2.4.59-4.el9_0.x86_64 18/18 インストール済みの製品が更新されています。 インストール済み: apr-1.7.0-11.el9.x86_64 apr-devel-1.7.0-11.el9.x86_64 apr-util-1.6.1-20.el9.x86_64 apr-util-bdb-1.6.1-20.el9.x86_64 apr-util-devel-1.6.1-20.el9.x86_64 apr-util-openssl-1.6.1-20.el9.x86_64 cyrus-sasl-2.1.27-20.el9.x86_64 cyrus-sasl-devel-2.1.27-20.el9.x86_64 expat-devel-2.2.10-12.el9_0.x86_64 httpd-2.4.51-7.el9_0.x86_64 httpd-devel-2.4.51-7.el9_0.x86_64 httpd-filesystem-2.4.51-7.el9_0.noarch httpd-tools-2.4.51-7.el9_0.x86_64 libdb-devel-5.3.28-53.el9.x86_64 mod_http2-1.15.19-2.el9.x86_64 mod_lua-2.4.51-7.el9_0.x86_64 openldap-devel-2.4.59-4.el9_0.x86_64 redhat-logos-httpd-90.4-1.el9.noarch 完了しました! [bitwalk@rhel9 ~]$
サービスの起動
Apache HTTP Server のサービス、httpd を起動 (start) します。また、OS 起動後にサービスが使えるように有効化 (enable) しておきます。
[bitwalk@rhel9 ~]$ sudo systemctl start httpd [bitwalk@rhel9 ~]$ sudo systemctl enable httpd Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service. [bitwalk@rhel9 ~]$
ファイアーウォールの設定
HTTP で通信できるようにサービスを追加した後、ファイアーウォールの設定を再ロードします。
[bitwalk@rhel9 ~]$ sudo firewall-cmd --zone=public --permanent --add-service=http success [bitwalk@rhel9 ~]$ sudo firewall-cmd --reload success [bitwalk@rhel9 ~]$
LAN 内の他の PC のブラウザからこの RHEL の Web サーバ (192.168.150.63) へアクセスして、トップページが表示されることを確認します。
ユーザ毎のディレクトリの設定
ユーザアカウント内の public_html 内をウェブサイトとして利用できるように /etc/httpd/conf.d/userdir.conf を編集します。下記に変更した箇所を赤字で示しました。
# # UserDir: The name of the directory that is appended onto a user's home # directory if a ~user request is received. # # The path to the end user account 'public_html' directory must be # accessible to the webserver userid. This usually means that ~userid # must have permissions of 711, ~userid/public_html must have permissions # of 755, and documents contained therein must be world-readable. # Otherwise, the client will only receive a "403 Forbidden" message. # <IfModule mod_userdir.c> # # UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions). # #UserDir disabled UserDir public_html # # To enable requests to /~user/ to serve the user's public_html # directory, remove the "UserDir disabled" line above, and uncomment # the following line instead:
ユーザアカウント内に public_html ディレクトリを作成します。この例ではユーザアカウントは bitwalk のみです。パーミッションは下記のようになっています。
[bitwalk@rhel9 ~]$ cd ~ [bitwalk@rhel9 ~]$ mkdir public_html [bitwalk@rhel9 ~]$ chmod 755 /home/bitwalk [bitwalk@rhel9 ~]$ ll -d /home/bitwalk drwxr-xr-x. 18 bitwalk bitwalk 4096 6月 9 07:12 /home/bitwalk [bitwalk@rhel9 ~]$ ll -d /home/bitwalk/public_html drwxr-xr-x. 2 bitwalk bitwalk 6 6月 9 07:12 /home/bitwalk/public_html [bitwalk@rhel9 ~]$
httpd を再起動します。
[bitwalk@rhel9 ~]$ sudo systemctl restart httpd
SELinux の設定
最後に SELinux 下で httpd がユーザーディレクトリをアクセスできるように httpd_enable_homedirs を有効にします。
[bitwalk@rhel9 ~]$ sudo setsebool -P httpd_enable_homedirs 1
ユーザーサイトのアクセス確認
LAN 内の他の PC から、ユーザーサイト http://192.168.150.63/~bitwalk がアクセスできることを確認します。事前に index.html を用意して /home/bitwalk/public_html/ に保存しておきました。
mod_ssl のインストール
SSL/TLS による HTTPS 通信の設定ですが、Web サーバーの公開鍵証明書と秘密鍵を入手しなければなりません。
家庭内の LAN で動作確認するだけですので、既にインストールされていた下記証明書と秘密鍵で、それっぽく動作を確認をしました。詳細は、参考サイト [1] を参照してください。
- /etc/pki/tls/certs/localhost.crt
- /etc/pki/tls/private/localhost.key
※ これらのファイルについて rpm -qf コマンドでは、どのパッケージに属しているのか判りませんでしたが、タイムスタンプから察するに mod_ssl をインストールしたときにポストスクリプト (scriptlet) で作成された自己署名証明書と思われます。
前置きが長くなりましたが、下記のように mod_ssl をインストールします。
[bitwalk@rhel9 ~]$ sudo dnf -y install mod_ssl
[sudo] bitwalk のパスワード:
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 4:16:23 時間前の 2022年06月09日 03時26分40秒 に 実施しました。
依存関係が解決しました。
================================================================================
パッケージ
Arch バージョン リポジトリー サイズ
================================================================================
インストール:
mod_ssl x86_64 1:2.4.51-7.el9_0 rhel-9-for-x86_64-appstream-rpms 114 k
トランザクションの概要
================================================================================
インストール 1 パッケージ
ダウンロードサイズの合計: 114 k
インストール後のサイズ: 261 k
パッケージのダウンロード:
mod_ssl-2.4.51-7.el9_0.x86_64.rpm 221 kB/s | 114 kB 00:00
--------------------------------------------------------------------------------
合計 220 kB/s | 114 kB 00:00
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : mod_ssl-1:2.4.51-7.el9_0.x86_64 1/1
scriptletの実行中: mod_ssl-1:2.4.51-7.el9_0.x86_64 1/1
検証 : mod_ssl-1:2.4.51-7.el9_0.x86_64 1/1
インストール済みの製品が更新されています。
インストール済み:
mod_ssl-1:2.4.51-7.el9_0.x86_64
完了しました!
[bitwalk@rhel9 ~]$
ポート 443 を利用できるようにファイアウォールを設定します。
[bitwalk@rhel9 ~]$ sudo firewall-cmd --permanent --add-port=443/tcp success [bitwalk@rhel9 ~]$ sudo firewall-cmd --reload success
httpd を再起動します。
[bitwalk@rhel9 ~]$ sudo systemctl restart httpd
LAN 内の他の PC のブラウザからこの RHEL の Web サーバ (192.168.150.63) へ https:// でアクセスしてみます。
「この接続ではプライバシーが保護されません」という警告が出ますが、アクセスすることはできます。
まとめ
最低限の設定ですが、動作を確認できました。
参考サイト
- 1.8. Apache HTTP サーバーで TLS 暗号化の設定 Red Hat Enterprise Linux 9 | Red Hat Customer Portal
- SSL/TLS サーバー証明書の基礎知識|BLOG|サイバートラスト
にほんブログ村
0 件のコメント:
コメントを投稿