手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 Apache Web サーバー構築 TLS 有効化

目次に戻る

Overview

Apache で TLS を有効化します。

前提条件

  • こちらを参考に Apache をインストール済みであること。

/etc/apache2/sites-available/default-ssl.conf

デフォルト値

デフォルト値は下記の通りです。

myadmin@ubuntu:~$ grep -v -e '^\s*#' -e '^\s*$' /etc/apache2/sites-available/default-ssl.conf | expand | tr -s [:space:] | sed 's/^\s/    /g'
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
        SSLOptions +StdEnvVars
    </Directory>
    </VirtualHost>
</IfModule>

設定値

設定値は下記の通りです。自己署名証明書に関してはこちらを参照して下さい。有償の証明書に関してはこちらを参照して下さい。

myadmin@ubuntu:~$ sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.orig
myadmin@ubuntu:~$ sudo tee /etc/apache2/sites-available/default-ssl.conf <<"EOF"
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
    ServerAdmin webmaster@si1230.com
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on
    SSLCertificateFile /etc/my-ssl/certs/si1230.com.crt
    SSLCertificateKeyFile /etc/my-ssl/private/si1230.com.key
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
        SSLOptions +StdEnvVars
    </Directory>
    </VirtualHost>
</IfModule>
EOF

設定の有効化

TLS を有効化します。Ubuntu の Apache は a2 から始まるコマンド (a2disconf, a2dismod, a2dissite, a2enconf, a2enmod, a2ensite, a2query) が用意されています。これらは /etc/apache2 ディレクトリに対応しており、例えば site- には sites-available と sites-enabled ディレクトリがあります。available には設定ファイルの実体があり、a2en から始まるコマンドを実行すると enabled にシンボリックリンクが作成され、Apache の起動時に読み込まれるようになります。

この設定手法は Ansible 等の自動化ツールでは扱いづらいのですが、a2 コマンドはシンボリックリンクを作成しているだけですので、a2 コマンド実行後に作成されたシンボリックリンクを確認して Ansible で同じように作成しても良いでしょう。

myadmin@ubuntu:~$ sudo a2ensite default-ssl
myadmin@ubuntu:~$ sudo a2enmod ssl

設定を有効化します。

myadmin@ubuntu:~$ sudo systemctl restart apache2.service && systemctl status apache2.service

正常性確認

下記のテスト用 HTML を作成します。ブラウザから Web サーバーにアクセス ( https:// ) して意図したレスポンスがあることを確認します。

myadmin@ubuntu:~$ sudo tee /var/www/html/index.html <<"EOF"
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>ubuntu apache test</title>
  </head>
  <body>
    <h1>ubuntu apache test</h1>
    <p>ubuntu apache test</p>
  </body>
</html>
EOF

テスト用 HTML を削除します。

myadmin@ubuntu:~$ sudo rm /var/www/html/index.html

目次に戻る

Ubuntu 22.04 Apache Web サーバー構築 TLS 有効化

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る