結論だけ書くと、.htaccessに下記の行を追加
Header always unset Strict-Transport-Security Header add Strict-Transport-Security "max-age=0"以上でHTTP通信ができるようになる。
詳細
近年のSSL普及の流れを受けて、自分のサイトをSSLに移行した方も多いのではないでしょうか。
しかしながら、その普及に大きく貢献していたStartComのStartSSLが信用を失い、最新ブラウザからは弾かれて使い物にならなくなりました。
中国の認証局が不正な証明書、主要ブラウザが無効化を通告
http://www.itmedia.co.jp/enterprise/articles/1611/02/news082.html
(どうしてこうなった…)
そこで、Let'sEncryptに移行するか元のHTTPに戻すかという話になるのですが、Let's Encryptは有効期限が3か月しかなく、自動更新ができるユーザーでないと結構面倒です。
なので、HTTP運用に戻そうと思う方もいるでしょうが、サーバーによってはHTTPでアクセスしても強制的にHTTPSになってしまいます。.htaccessで強制していないにも関わらず強制的にHTTPSになってしまう場合、HSTSが有効になっている場合があります。
HSTSとは、一度でもhttpsでアクセスした場合、今後httpでアクセスしても、自動的にhttpsに転送するというブラウザの仕様で、これを無効化しないとHTTP通信に戻せません。
無効化するには、.htaccessファイルに上記の行を記載すれば、HTTP通信が許可され、HTTP通信に戻せます。
ちなみに、HTTPSからHTTPにリダイレクトするには、.htaccessに
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301] </IfModule>と記載。
しかしながら既にGoogleにHTTPSでインデックスされてしまうと少々厄介。
.htaccessファイルにアクセスする前に、ブラウザはHTTPSでサーバーに接続するため、その段階でStartSSLの証明書によりエラーになってしまう。
なので、301リダイレクトで早くHTTPの方にインデックスされることを祈りつつ、暫間的にLet'sEncryptでSSL設定をするしかないと思われる。
Let's EncryptのSSL証明書取得は、ネットオウルで行うのが一番簡単なため(他のレンタルサーバーを使ってようが、証明書の取得は無料でネットオウルで行える) 、ここでSSL証明書を取得して、自分の使っているレンタルサーバーでLet's EncryptのSSL設定をするのが良いと思われる。
参考ページ
Let’s Encryptの無料SSLサーバー証明書でhttpsサイト化
https://www.keypencil.com/2016/05/29/lets-encrypt-ssl/
0 件のコメント:
コメントを投稿