Apacheの設定をいろいろいじってみる

LABO

はじめに

Apacheがインストールされていることを前提として話を進めますので
良ければ以下のページの環境構築編の投稿をご覧ください。

なお、以降の説明はroot権限で作業することを前提とします。
設定ファイルを書き換えた後はサービスの再起動が必要になりますがそれも説明しません。
設定ファイル変更後、以下のコマンドを必ず実行してから確かめてください。

80番ポートを443番ポートにリダイレクト

80番ポートを443番ポートにリダイレクトするとは、HTTP通信(80番ポート)でサーバに接続に来た場合に、自動的にHTTPS通信(443番ポート)に転送(切り替え)をしてあげる仕組みです。
これによってユーザがHTTP通信で接続しに来たとしても、自動的にHTTPS通信になり安全性が確保されます。

ちなみにですが、ポートの転送だけではなく、サーバをお引越しした際に移転先に転送するなんて言う使い方もされることもありあます。

なお、80番ポートを閉じてしまっては?と言う話もあるかもしれませんが、一連の投稿の中でLet’s Encryptを使用しており、証明書の更新の際などに80番ポートを開けおく必要があります。
そのため80番ポートを開けつつセキュリティを確保するためには443番ポートにリダイレクトする必要があります。

Apache起動時に設定ファイルのどこかに記述されていればいいのですが、あとで個別にリダイレクトの設定をいじる可能性もあるので/etc/httpd/conf.dフォルダ配下にvhost.confってファイルを作りました。

このファイルの中に以下を記述してください。

RewriteEngine Onmod_rewrite モジュールを有効化
RewriteCond %{HTTPS} offリクエストが HTTPS ではない場合にのみ RewriteRule を適用
RewriteRuleルールに従ってURLを再構築
 (.*)リクエストのパス全体をキャプチャ
 https://http://をhttps://で始まるURLへ
 %{HTTP_HOST}リクエストされたホスト名
 %{REQUEST_URI} リクエストされたパスの全体
 [R=301]リダイレクトをステータスコード301(恒久的リダイレクト)に
 [L]Lastを意味し、それ以降のルールを処理しない
※これは複数のリダイレクトルールが設定されているときに活きてくる

蛇足

ちなみにですが/etc/httpd/conf.dフォルダの配下に拡張子「conf」でファイルを作成しておけば、自動的に設定ファイルとして読み込まれます。
何故ならhttpd.confの中に以下の記述があるから

この設定を行った後にLet’s Encryptの証明書更新を試してみると、問題なく更新されることが確認される。

便利コマンド

Apacheでロードされているモジュールの一覧を知りたい

実行結果


コメント

タイトルとURLをコピーしました