質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

Apache2.2.11をHTTPS化しようとすると最新のApacheがインストールされてしまいます

tera001
tera001

総合スコア6

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

2回答

0グッド

0クリップ

895閲覧

投稿2021/12/29 14:06

編集2021/12/29 14:09

Apache2.2.11をHTTPS化しようとすると最新のApacheがインストールされてしまいます

Apache2.2.11のDocker環境を構築したいのですが、以下を実行するとApacheが2.4.6になってしまいます。

実現したいこと

Apache2.2.11でHTTPS通信

該当のソースコード

docker-compose.yml

version: "3" services: dcloud: build: . ports: - "80:80" - "443:443"

Dockerfile

1FROM centos:centos7 2 3# 証明書 4COPY ./confssl/* /opt/httpd/httpd-2.2.11/conf/ 5 6RUN yum update -y 7RUN yum install gcc make pcre pcre-devel wget -y 8 9RUN yum -y install expat-devel 10 11# apr-1.5.1.tar.gz 12RUN cd /usr/local/src \ 13 && wget https://archive.apache.org/dist/apr/apr-1.5.1.tar.gz \ 14 && tar -xvzf apr-1.5.1.tar.gz \ 15 && cd apr-1.5.1 \ 16 && ./configure --prefix=/opt/apr/apr-1.5.1 \ 17 && make \ 18 # && make test \ 19 && make install 20 21# apr-util-1.5.3.tar.gz 22RUN cd /usr/local/src \ 23 && wget https://archive.apache.org/dist/apr/apr-util-1.5.3.tar.gz \ 24 && tar -xvzf apr-util-1.5.3.tar.gz \ 25 && cd apr-util-1.5.3 \ 26 && ./configure --prefix=/opt/apr-util/apr-util-1.5.3 --with-apr=/opt/apr/apr-1.5.1 \ 27 && make \ 28 && make test \ 29 && make install 30 31# httpd 32RUN cd /usr/local/src \ 33 && wget http://archive.apache.org/dist/httpd/httpd-2.2.11.tar.gz \ 34 && tar -xvzf httpd-2.2.11.tar.gz \ 35 && cd /usr/local/src/httpd-2.2.11 \ 36 && ./configure --prefix=/opt/httpd/httpd-2.2.11 \ 37 -with-included-apr \ 38 --with-apr=/opt/apr/apr-1.5.1 \ 39 --with-apr-util=/opt/apr-util/apr-util-1.5.3 \ 40 --build=arm \ 41 && make \ 42 && make install 43 44ENV PATH $PATH:/opt/httpd/httpd-2.2.11/bin 45 46# SSL 47RUN yum -y install mod_ssl.aarch64 48 49# httpd.conf 50RUN sed -i \ 51 -e 's/^#(Include .*httpd-ssl.conf)/\1/' \ 52 -e 's/^#(LoadModule .*mod_ssl.so)/\1/' \ 53 -e 's/^#(LoadModule .*mod_socache_shmcb.so)/\1/' \ 54 -e 's/^#(ServerName www.example.com:80)/ServerName localhost:443/g' \ 55 /opt/httpd/httpd-2.2.11/conf/httpd.conf 56 57# SSLなしの起動確認 58# RUN sed -i \ 59# -e 's/^#(LoadModule .*mod_socache_shmcb.so)/\1/' \ 60# -e 's/^#(ServerName www.example.com:80)/\1/' \ 61# /opt/httpd/httpd-2.2.11/conf/httpd.conf 62 63# start 64CMD ["apachectl", "-D", "FOREGROUND"]

試したこと

コンテナ内でバージョン確認

% docker exec -it apache2211_dcloud_1 /bin/bash [root@6fdd9ece326d bin]# httpd -v Server version: Apache/2.4.6 (CentOS) Server built: Nov 10 2021 14:38:52

Apache2.2.11は存在していました。

[root@6fdd9ece326d bin]# ls -l /opt/httpd/httpd-2.2.11 total 60 drwxr-xr-x 2 root root 4096 Dec 29 13:36 bin drwxr-xr-x 2 root root 4096 Dec 29 13:36 build drwxr-xr-x 2 root root 4096 Dec 29 13:36 cgi-bin drwxr-xr-x 1 root root 4096 Dec 29 13:52 conf drwxr-xr-x 3 root root 4096 Dec 29 13:36 error drwxr-xr-x 2 root root 4096 Dec 29 13:36 htdocs drwxr-xr-x 3 root root 4096 Dec 29 13:36 icons drwxr-xr-x 2 root root 4096 Dec 29 13:36 include drwxr-xr-x 3 root root 4096 Dec 29 13:36 lib drwxr-xr-x 2 root root 4096 Dec 29 13:36 logs drwxr-xr-x 4 root root 4096 Dec 29 13:36 man drwxr-xr-x 14 root root 12288 Dec 29 13:36 manual drwxr-xr-x 2 root root 4096 Dec 29 13:36 modules [root@6fdd9ece326d bin]# ls -l /usr/sbin/httpd -rwxr-xr-x 1 root root 539976 Nov 10 14:41 /usr/sbin/httpd

SSLなしで起動してみたところ問題なくhttp://localhostにアクセスできましたので、Apache2.2.11自体に問題はないのかと思っています。

補足情報

環境

M1 Mac

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

hoshi-takanori

2021/12/29 17:51 編集

./configure --prefix=/opt/httpd/httpd-2.2.11 ってことは apache 2.2.11 は /opt/httpd/httpd-2.2.11 にインストールされるはずで、/usr/sbin/httpd や apachectl で実行されるのはそれとは別にもともと centos7 に入ってる (?) apache 2.4.x なのでは。 というか、なぜわざわざ apache 2.2.11 なんて古いものを使おうとしてるのでしょうか? HTTPS 化ということはセキュリティを気にされてのことだと思いますが、apache 2.2.11 には複数の脆弱性が報告されてるような…。

回答2

0

ベストアンサー

Centos7 系 の mod_ssl の依存に httpd-2.4 が存在しているため、yum でインストールしたときにそちらを使ってしまうようです。

mod_ssl も openssl のビルドから始めて自前で用意する必要があると思います。
httpd 2.2 系は openssl 0.9.8 を使う必要があるようですのでご注意ください。
https://end0tknr.hateblo.jp/entry/20140207/1391784613

ただ、openssl のサイトにもあるように、0.9.8 はサポート外で使用は勧められませんのでご注意ください。
(用途がわからないのですが、動作環境として使うことを想定されているのであれば、
可能なら Apache httpd の 2.4 を使うようにされた方がセキュリティ的にも手間的にもよさそうと個人的に思いました)

https://www.openssl.org/source/

All older versions (including 1.1.0, 1.0.2, 1.0.0 and 0.9.8) are now out of support and should not be used.

投稿2021/12/30 04:28

編集2021/12/30 04:34
kiino

総合スコア521

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

apache2.4.6はrpmパッケージのものでyum update時に最新版になっていると予想されます

srcインストールの2.2.11を使用し、rpm版が不要であればyum updateの前にアンインストーを挿入すればいいでしょう

投稿2021/12/29 15:03

yukky1201

総合スコア2732

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

tera001

2021/12/29 15:36

ご回答ありがとうございます。 理解できず申し訳ないのですが、`RUN yum update -y`で最新版になっているということであっていますか? `RUN yum update -y`以降をコメントアウトして実行しても`usr/sbin/httpd`は存在していませんでした。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです