localなApache2でSSL通信(https)を使う

実行したこととその経緯

Debian 10.0(buster)のApache2で、SSL(https)を動かした。インストール時に自動的に作られているSSL証明書を使うとすんなり動いた。LAN内で運用するのでこれでよい。

LAN内にapache2とphpを運用しているが、ある条件でfirefoxからアクセスできない事象が発生。原因の詳細はわからないがhttpsでアクセスできれば解消されると予想した。予想は的中したが、その事象についてはここには書かない。

DebianやUbuntuのapache2の設定方法はCentOSなどに比べてちょっと作りこんであるらしい。"apache2 https" で検索をかけて出てきた中からUbuntuのものを参考にした。

default-ssl.confの編集

ずっと、何に使うのか気になっていた、/etc/apache2/sites-available/default-ssl.conf を編集。

変更したのはDocumentRootだけ

#2022-1-22 adachi
# DocumentRoot /var/www/html
DocumentRoot /srv/www/public

他のsites-availableのファイルを変更していなければ、000-default.conf の DocumentRoot と同じになる。httpでアクセスしてもhttpsでアクセスしてもよいという環境になるはずだから、これでよいはず。

sslモジュールの追加

a2enmod ssl するだけ。

root@fumita:/etc/apache2# a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
  systemctl restart apache2

sslモジュールのファイルは mods-available にあり、mods-enabled にシンボリックリンクが作られることで有効になる。

default-sslの有効化

設定ファイルを編集したdefault-sslを有効にする。これも a2ensite default-ssl するだけ。

root@fumita:/etc/apache2# a2ensite default-ssl
Enabling site default-ssl.
To activate the new configuration, you need to run:
  systemctl reload apache2

これも sites-available にあるファイルのシンボリックリンクが sites-enabled に作られることで有効になる。

apache2の再起動

注意に従い、systemctl restart apache2 する。

root@fumita:/etc/apache2# systemctl restart apache2

これで、これまで http://nan.dabiyone.com/ などとアクセスしてきたところが、 https://nan.dabiyone.com/ でアクセスできる。ただし最初だけ警告がでる。

初期の警告

サンプルの証明書を使っているので不正なものと警告される。確認の上、このサンプル証明書を例外的に信頼するものとして登録する。

firefoxの場合は以下のような画面で行う。

LAN内のnan.dabiyone.comのサーバーの証明なので、[詳細情報…]に進んで、次の画面を出し…

[危険性を承知で続行]を押します。

参考サイト

今回、参考にさせていただいたサイトはこちら。 【Ubuntu 18.04 LTS Server】ApacheのSSL通信(https)を使う | The modern stone age.