Apache が変なときは certbot と ServerAlias を疑え

この記事は最終更新日から1年以上が経過しています。情報が古くなっている可能性があります。

サブドメインを Apache に追加してついでに Let’s Encrypt も設定して…とやるときによくありがちなのだが、Apache の設定がおかしくなったのか certbot で証明書発行して virtual-le-ssl.conf に設定して https でアクセスしたら Apache2 Ubuntu Default Page が返ってくることがあったりする。

これはどうやら certbot の Apache の設定ファイルをいじる機能がポンコツなせいで、証明書を取得した後に Apache の設定ファイルがぐちゃぐちゃに編集されてしまうことで発生してしまっている(私の Apache の設定が変なのもあるかもしれんが)。

具体的には一番上のデフォルトページの設定に勝手に ServerAlias subdomain.example.net が追記されてて subdomain.example.net にアクセスしたらデフォルトページが表示されるようになってたりとか…
ServerAlias はもともと www ありと www なしを統一したいときとかにほとんど同じ設定をコピペしなくても済むようにするための設定らしいけど、それが勝手に追記されていたので(ry (参考)(参考

certbot の設定ファイル自動編集機能はあてにならない(特にたくさん VirtualHost を設定している場合)っぽいので、certbot を実行する前は Apache の設定ファイルをバックアップしておいた方がよさそう。
もしバックアップせずにやってしまった場合は virtual-le-ssl.conf の上の方と下の方に変なのが追記されてないか確認して適宜消すなり修正するなり…(下の方になぜかインデント崩れた http 用の設定が入ってたりするがあれはなんなんだ)

Apache の設定ファイルは小難しいドキュメントと小難しい記事しか出てこなくて(CentOS の情報が多すぎて Ubuntu の情報自体があまりない)私も全然理解できてないので、どこかにいい感じの解説ないかなーーーと思ったまる。とりあえず解決。

コメント