Apacheでhttpsを強制する方法
前提
書くこと/書かないこと
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です。
こってりと
時間とができてやる気が出たら加筆します(しないかも)。
ディスカッション
コメント一覧
まだ、コメントがありません