ERR_SSL_PROTOCOL_ERRORが起こる原因は?「.htaccess」の書き方じゃなく、SSLの設定ミス

ネット集客実践クラブ(大阪)

ERR_SSL_PROTOCOL_ERRORが起こる原因は?「.htaccess」の書き方じゃなく、SSLの設定ミス

SSLイメージ

最近、ネットのセキュリティ強化のために、ホームページの「SSL化」の作業を行っています。

SSLの設定と、今までのホームページからのhttpsへの転送設定(リダイレクト)をしたら

ERR_SSL_PROTOCOL_ERROR

のエラーで、httpsのwww付きサイトが表示されなくなりました。

原因は、

wwwのサブドメインでSSLに対応ができてなかった

だったので、「www無しのSSL化」だけじゃなく、「wwwもSSL化」すれば解決しました。

httpsとhttp どちらも「wwwなしhttps」へリダイレクトする方法、.htaccessの書き方

ということで、

  • http://www.net-syukyaku-jissen.club/(httpでwww付き)
  • http://net-syukyaku-jissen.club/(httpでwww無し)
  • https://www.net-syukyaku-jissen.club/(httpsでwww付き)

の3パターンを

  • https://net-syukyaku-jissen.club/

にリダイレクトで統一する方法です。

今回は、「.htaccess」に書きました。


# BEGIN 自分

RewriteEngine on
RewriteBase /

# httpからの通信を、httpsにリダイレクト(www有り無し)
RewriteCond %{HTTPS} off
RewriteRule ^(.*$) https://net-syukyaku-jissen.club/$1 [R=301,L]

# httpsからの通信でwww有りの場合、www無しにリダイレクト
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www.net-syukyaku-jissen.club$
RewriteRule ^(.*)$ https://net-syukyaku-jissen.club/$1 [R=301,L]

# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。

RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

httpsとhttp どちらも「wwwなしhttps」へリダイレクトする「.htaccess」の書き方解説

ワードプレスを使ってるので、後半の

# BEGIN WordPress
# “BEGIN WordPress” から “END WordPress” までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。

RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

の周辺(正確には、「# BEGIN WordPress」と「# END WordPress」の間)に設定を書くと、ワードプレスによって上書きされてしまいますので、それより前に書きます。

設定の考え方として、まずは、

「httpでの接続を全部httpsにリダイレクト」

させ、その後

「www有りをwww無しにリダイレクト」

という流れです。

これだと、

「www有りをwww無しにリダイレクト」

してから、

「httpでの接続を全部httpsにリダイレクト」

にしても上手くいきそうなのですが、これだと、https://www.にいきなりアクセスされると

ERR_SSL_PROTOCOL_ERROR

になります。

というか、

そもそもwwwもSSL化しておかないと接続ポートが違うので、接続自体ができない

ってのが原因みたいです。

「.htaccess」の処理は、WEBサーバーにアクセスした後の処理なので、接続できてないと「.htaccess」自体処理できないってことですね。

ということで、

「httpでの接続を全部httpsにリダイレクト」

させ、その後

「www有りをwww無しにリダイレクト」

という設定にしました。

まず、

RewriteEngine on

は、リダイレクト設定を「on」にする部分です。

RewriteBase /

で、リダイレクトする内容を、htaccessを設置しているディレクトリじゃなく、ルートからのパスとして設定します。

で、

# httpからの通信を、httpsにリダイレクト(www有り無し)
RewriteCond %{HTTPS} off
RewriteRule ^(.*$) https://net-syukyaku-jissen.club/$1 [R=301,L]

という部分の「RewriteCond」で条件を決めます。

ここでは「httpsがoffだったら」ですね。

この条件に当てはまるアクセスがきたら

「RewriteRule」(リダイレクトのルール)で、httpsの接続へ転送してください

としています。

次に

# httpsからの通信でwww有りの場合、www無しにリダイレクト
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www.net-syukyaku-jissen.club$
RewriteRule ^(.*)$ https://net-syukyaku-jissen.club/$1 [R=301,L]

ですが、前の設定で、接続は全てSSLになってます。

なので、

「RewriteCond %{HTTPS} on」(httpsがon)

で、

「RewriteCond %{HTTP_HOST} ^www.net-syukyaku-jissen.club$」(www付きのアクセス)

だったら、

RewriteRule ^(.*)$ https://net-syukyaku-jissen.club/$1 [R=301,L](httpsでwww無し)

へ転送してください、となっています。

参考サイト)httpからhttpsにリダイレクト、www有無のリダイレクト方法(mod_rewrite)|レンタルサーバーナレッジ

関連記事

  1. ワードプレス・ロゴ

    アドセンスを掲載しようとしたら、ワードプレスのカスタムHTMLが…

  2. ワードプレス・ロゴ

    解決】ワードプレスで「致命的なエラーをチェックするためにサイトと…

  3. ワードプレス・ロゴ

    ワードプレスのテーマを変更してもGTMやアドセンスのタグが表示さ…

  4. ワードプレス・ロゴ

    Contact Form 7 でスパム送信が沢山くるので対応して…

集客のネタ話

  1. フェイスブック・ロゴ
    フェイスブック広告で、終了したキャンペーンを「複製」で、新たにキャンペーンを作ると、…
  2. カフェの入り口
    本当にカフェを開きたいなら、まずは、無料のコメダ珈琲さんの資料を請求してください。勉…
  3. 非常事態では、自分の手持ちの札を見直す
    ネット集客実践クラブにいいね!してくれてる方が、既存のネット資産を見直して集客できそうな…
  4. ワードプレス・ロゴ
    キニナルの掲載申し込みページは、ワードプレスのプラグイン「Contact Form7」を使っています…
  5. 週一ページ作りプロジェクト
    えーと、大阪狭山でも人気の美容室エメールヘアの木全さんが参加してくださったので、週一ページ作…
ページ上部へ戻る