Apacheでhttpsを強制する方法

2022年6月17日

前提

書くこと/書かないこと

WebサーバにApacheを使う場合に、httpでのアクセスをhttpsにリダイレクトさせる方法を書きます。

環境

AlmaLinux 8.6 ※CentOS8代替OS

Server version: Apache/2.4.37 (AlmaLinux)

さくっと

apacheのconfファイルに書くのですが、どのファイルに書いても動きます。

httpsにリダイレクトさせるということはsslが有効になっていることが前提になるので、私はssl.confに書きます。

ssl.confを開き、ファイルの末尾に以下の記述を追加します。

Headerで始まる1行は、このサイトがSSL対応サイトであることをブラウザに伝えるための記述で、これを受け取ったブラウザは有効期限が切れるまで最初からhttpsで接続するようになります。また、追加2行目以降のifModuleの記述がhttpでアクセスされた場合に強制的にhttpsにリダイレクトさせる設定になります。

(省略)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" 
<ifModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</ifModule>

書いたら設定を有効するためにapacheを再起動します。

systemctl restart httpd.service

http://{FQDN}でアクセスするとhttps://{FQDN}にリダイレクトされることが確認できればOKです。

こってりと

時間とができてやる気が出たら加筆します(しないかも)。