2
0

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 3 years have passed since last update.

Ubuntu + Apache + SSL + デジタル証明書 (1.Apache編)

Last updated at Posted at 2020-06-13

タイトルそのまんまです。

Ubuntu + Apache + SSL + デジタル証明書 (1.Apache編) ←本編です。
Ubuntu + Apache + SSL + デジタル証明書 (2.SSL編)
Ubuntu + Apache + SSL + デジタル証明書 (3.デジタル証明書編)

作業の顛末をほぼリアルタイムで記録しておきます。
(あとでまとめようなんてのは、たぶん無理だから)
作業日:2020年6月

参考書
・Ubuntuサーバー徹底入門 翔泳社

あとはやりながら、Qiitaの先輩方の記事を参考にして進めることにします。

環境:さくらのVPS V5(OS:Ubuntu 18.04 amd64)
DNSサーバーについてはさくらさんに任せています。

初心:
これまで V4(OS:CentOS7 x86_64) を使っていたので、勝手が違うしApacheもシンプルな設定でしか使ったことがなかったので、壁にぶつかりながら自分を鍛えていきます。

パッケージ情報のインデックスを更新します。

$ sudo apt update

システムを更新します。

$ sudo apt upgrade

作業を始める前に、開いているポートを確認しておきます。

$ ss -atl
State    Recv-Q    Send-Q        Local Address:Port         Peer Address:Port
LISTEN   0         128           127.0.0.53%lo:domain            0.0.0.0:*
LISTEN   0         128                 0.0.0.0:ssh               0.0.0.0:*
LISTEN   0         128                    [::]:ssh                  [::]:*

Apacheをインストールします。

$ sudo apt install apache2

開いているポートを確認します。httpが開きました。

$ ss -atl
State    Recv-Q    Send-Q        Local Address:Port         Peer Address:Port
LISTEN   0         128           127.0.0.53%lo:domain            0.0.0.0:*
LISTEN   0         128                 0.0.0.0:ssh               0.0.0.0:*
LISTEN   0         128                       *:http                    *:*
LISTEN   0         128                    [::]:ssh                  [::]:*

/etc 以下にApache関連の設定ファイルが生成されました。

$ ls /etc/apache2
apache2.conf    conf-enabled  magic           mods-enabled  sites-available
conf-available  envvars       mods-available  ports.conf    sites-enabled

/var 以下にはデフォルトのindex.htmlファイルが生成されています。

$ cd /var/www/html
$ ls
index.html

Apacheが稼働している事を確認しておきます。
htmlの長いソースが出力され、最後に success となりました。

$ curl localhost && echo success || echo failed

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
(中略)
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Apache2 Ubuntu Default Page: It works</title>
(中略)
  </head>
  <body>
(中略)
        <div class="section_header section_header_red">
          <div id="about"></div>
          It works!
        </div>
(中略)
  </body>
</html>

success

Webブラウザからアクセスできるよう、ファイヤウォールの設定を変更します。

$ sudo ufw allow http
Rules updated
Rules updated (v6)

80番のポートが外部に開いたことを確認します。

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 80/tcp                     ALLOW IN    Anywhere
[ 2] 22/tcp                     LIMIT IN    Anywhere
[ 3] 80/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 4] 22/tcp (v6)                LIMIT IN    Anywhere (v6)

Webブラウザからアクセスしてみます。
/var/www/html/index.html が送出されました。
image.png

システム起動時にApacheも自動的に起動するようにしておきます。

$ sudo systemctl enable apache2
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2

ここで、/etc/apache2/apache2.conf を覗いておきます。

$ cat apache2.conf
(前略)
#Mutex file:${APACHE_LOCK_DIR} default
(中略)
DefaultRuntimeDir ${APACHE_RUN_DIR}
(中略)
PidFile ${APACHE_PID_FILE}
(中略)
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
(中略)
ErrorLog ${APACHE_LOG_DIR}/error.log
(後略)

上の${APACHE_*}って何なの、というのが /etc/apache2/envvars に記述されているようなので、控えをとっておきます。
APACHE_PID_FILE=/var/run/apache2(SUFFIX)/apache2.pid
APACHE_RUN_DIR=/var/run/apache2(SUFFIX)
APACHE_LOCK_DIR=/var/lock/apache2(SUFFIX)
APACHE_LOG_DIR=/var/log/apache2(SUFFIX)
APACHE_RUN_USER=www-data
APACHE_RUN_GROUP=www-data

$ cat /etc/apache2/envvars
# envvars - default environment variables for apache2ctl

# this won't be correct after changing uid
unset HOME

# for supporting multiple apache2 instances
if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then
        SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}"
else
        SUFFIX=
fi

# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
# temporary state file location. This might be changed to /run in Wheezy+1
export APACHE_PID_FILE=/var/run/apache2$SUFFIX/apache2.pid
export APACHE_RUN_DIR=/var/run/apache2$SUFFIX
export APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX
# Only /var/log/apache2 is handled by /etc/logrotate.d/apache2.
export APACHE_LOG_DIR=/var/log/apache2$SUFFIX

## The locale used by some modules like mod_dav
export LANG=C
## Uncomment the following line to use the system default locale instead:
#. /etc/default/locale

export LANG

## The command to get the status for 'apache2ctl status'.
## Some packages providing 'www-browser' need '--dump' instead of '-dump'.
#export APACHE_LYNX='www-browser -dump'

## If you need a higher file descriptor limit, uncomment and adjust the
## following line (default is 8192):
#APACHE_ULIMIT_MAX_FILES='ulimit -n 65536'

## If you would like to pass arguments to the web server, add them below
## to the APACHE_ARGUMENTS environment.
#export APACHE_ARGUMENTS=''

## Enable the debug mode for maintainer scripts.
## This will produce a verbose output on package installations of web server modules and web application
## installations which interact with Apache
#export APACHE2_MAINTSCRIPT_DEBUG=1

Ubuntu + Apache + SSL + デジタル証明書 (2.SSL編)
Ubuntu + Apache + SSL + デジタル証明書 (3.デジタル証明書編)
に続きます。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?