3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PLISEAdvent Calendar 2021

Day 2

CentOS7でモダンなApache環境を構築する

Last updated at Posted at 2021-12-01

結論

モダンな環境を試したい場合は最新のOSを利用しよう!

それでもCentOS7を使いたい場合は
以下のバージョンをインストールできる想定です

  • Apache 2.4.51
  • OpenSSL 1.1.1

環境

  • AWS EC2
    • インスタンス m5.xlarge
    • OS CentOS 7 (x86_64)
    • セキュリティグループ
      • http, httpsは全開放
      • sshは自分の環境のみ

EC2インスタンスの場合はfirewallではなくセキュリティグループで大抵は保護されます

手順

ルートユーザで作業します

# sudo su -

ある程度のツール群はインストールされている想定です

# yum install -y vim
  1. OpenSSLのインストールと適用
必要なモジュールをインストール
# yum install gcc zlib-devel

定石だとソースダウンロード以下で実施される
# cd /usr/local/src/

ソースをダウンロード
# wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz

ダウンロードしたファイルを解凍する
# tar xzvf openssl-1.1.1l.tar.gz

解凍したディレクトリに移動
# cd openssl-1.1.1l

インストールディレクトリの指定
# ./config --prefix=/usr/local/openssl shared zlib

ビルド
# make

インストール
# make install

bashにパスを通す
# echo 'export PATH="/usr/local/openssl/bin/:$PATH";' >> ~/.bashrc

再読込み
# source ~/.bashrc

バージョン確認
# openssl version
OpenSSL 1.1.1l  24 Aug 2021
  1. Apacheのインストール
必要なモジュールをインストール
# yum -y install openldap-devel expat-devel libdb-devel mailcap system-logos

Apacheがインストールされている場合は関連モジュールも含め削除
# yum remove httpd*

リポジトリのインストール
# yum -y install https://repo.ius.io/ius-release-el7.rpm

Apacheのインストール
# yum  -y install --disablerepo=base,extras,updates --enablerepo=ius httpd httpd-devel mod_ssl

バージョン確認
# httpd -v
Server version: Apache/2.4.51 (IUS)
Server built:   Oct  8 2021 16:46:12

この状態ではmod_ssl.soOpenSSL 1.0を参照してしまっている
イレギュラーだがApacheをビルドし直してmod_ssl.soを頂戴する

mod_ssl.soの作成と適用

ディレクトリの移動
# cd /usr/local/src/

共有ライブラリに追加するためにインストールディレクトリのパスを記載
# vim /etc/ld.so.conf.d/openssl-1.1.conf
# cat /etc/ld.so.conf.d/openssl-1.1.conf 
/usr/local/openssl/lib/

共有ライブラリの読み込み
# ldconfig

OpenSSL1.1.1を参照するように変数をセット
# export PKG_CONFIG_PATH=/usr/local/openssl/lib/pkgconfig/

必要なモジュールをインストール
# yum install bzip2 pcre pcre-devel prelink

ソースをダウンロード
# curl http://ftp.riken.jp/net/apache//httpd/httpd-2.4.51.tar.bz2 -O

ダウンロードしたファイルを解凍
# tar jxvf httpd-2.4.51.tar.bz2 

解凍したディレクトリに移動
# cd httpd-2.4.51 

設定は必要ないがmakefile作成のため実施
# ./configure 

ビルド
# make 

インストールせずにファイルのみ頂戴する
# cp modules/ssl/.libs/mod_ssl.so /etc/httpd/modules/

実行の許可
# execstack -c /etc/httpd/modules/libcrypto.so.1.1 

Apacheの起動
# systemctl start httpd

セキュリティ設定の細かいことは他の方におまかせしますが、
ここまで対応すればTLSv1.2までの暗号スイートには対応できるはずです

補足

可能であればCentOS8以降を使いましょう
素直に最新版が入れられるはずです

余談

  • アドベントカレンダー担当日
    • 2021年12月2日0時0分
  • 執筆開始
    • 2021年12月1日11時02分
  • 執筆終了
    • 2021年12月2日00時05分

来年はやる前提で記事を用意します、、

それでは皆様よいお年を!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?