httpsからhttpに戻す方法
運用
2024年1月10日
2014年からGoogleでは常時SSL化が推奨され、20217年にブラウザのChromeでは「保護された通信」の表示がされるようになり、この頃から常時SSL化が一般的となりました。
ただ、訳あって今回は常時SSL化であるサイトを非SSL化の作業を行ったので、その際にハマったポイントを共有します。
まずはサイトの構成を説明します。
目次
httpsからhttpに変更するサイト構成
- 有料のSSLを実装
- 静的HTMLで制作(CMSは使用していない)
- 以前はhttp接続だったが、常時SSL化が推奨されたタイミングでSSL化を.htaccsのリダイレクト設定で対応
- Googleにはhttpsでインデックスされている
上記の内容のサイトをhttp接続に戻します。
非SSL化作業の流れ
有料のSSLの有効期限内にhttpsからhttpへのリダイレクト設定を.htaccessに書き込みました。
コードの説明は省きますが以下のコードを.htaccessに記述してウェブルートに保存します。
RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
リダイレクトの設定を完了後、ブラウザでチェックすると問題なくhttpへリダイレクトされます。
ただし、正しくリダイレクトされるのは現在使用しているSSLの有効期限内に限ります。
ハマったポイント
SSLの有効期限が切れた場合、httpsでアクセスすると、リダイレクトが行わる前に、ブラウザ側で「安全ではない警告」が表示されます。これはブラウザがサーバーと最初に通信を確立する際に、SSL証明書の有効性を確認するため、証明書が無効または期限切れの場合、ブラウザは警告を表示する仕様になっています。
そのため、先程のリダイレクト設定は機能しないということです。ただし、httpでの接続は問題なくサイトは表示されます。
ここで困ったのはGoogleにインデックスされているのはすべて、httpsからはじまるURLになる点です。
ブラウザの警告を回避する方法
まずはリダイレクトを正しく機能させるため、一時的に無料のSSLを実装しました。結局は有効期限のある証明書を使用する必要があります。
その後、サーチコンソールは新規でhttpのサイトを追加、Googleアナリティクスはhttpsからhttpに変更。さらにGoogleのインデックスをhttpsからhttpになるべく早くクロールしてもらうため、サーチコンソールでサイトマップを送信。
一応これで、Googleのインデックスがhttpsからhttpに変われば、8割方問題ないですが、直にhttpsから入力すると結局のところブラウザの警告は出てしまいます。
最終的にどこにhttpsからのリンクがあるかすべてを把握することはできないので、常時SSL化したサイトを非SSL化するのはおすすめしない。