Chrome 68から全HTTPサイトに警告表示!HTTPSへの移行は済んでますか?

カテゴリー:WebコンサルティングWeb制作ブログ

すでに2月にアナウンスされていましたが、2018年7月24日(日本時間ではおそらく25日)にリリースが予定されているGoogle Chrome 68からHTTPSで配信されていないページを表示する際、URLのラベルに「保護されていない通信」と表示されるようになります。対応していないサイトではどのような対策が必要になるのでしょうか。

HTTPとHTTPSの違いとは?

HTTPとは「Hypertext Transfer Protocol」の略で、「ハイパーテキスト転送規約」とも呼ばれます。主にHTMLや画像、動画データなどWebサイトを構成する要素をサーバーとブラウザでやり取りするための決まりごとのことです。

HTTPSはHTTPによる通信を安全に行うための通信方法のことです。HTTPSに対応したWebサーバーとブラウザの間では通信内容が暗号化あれ、改ざんや盗聴などの攻撃を防ぐことができます。

HTTPSに使われる暗号化プロトコルにはTLSが利用されており、最新バージョンは1.2となっています。「SSL」という用語を聞いたことがある方もいるかもしれませんが、SSLはTLSのもとになったプロトコルで、すでに脆弱性が見つかっていることから現在は使うべきではないプロトコルとなっています。ただし、SSLの呼称が普及していることから、証明書はTLSで使用するものであっても「SSL証明書」と呼ばれることが多いようです。

なぜ警告が表示されるの?

Googleは保護されたウェブの普及を目指して取り組みを進めており、今回の対応はその普及をさらに後押しするためと考えられます。Google Chromeで発生している通信のうち、約70〜80%程度がすでにHTTPSで保護されており、この普及率をさらに高めるのが狙いです。

HTTPSを導入していない場合、通信経路上で通信内容が盗み見たり、通信経路に細工を施すことで同じURLのまま別のサーバーに誘導したりすることが可能になってしまいます。

HTTPSを導入している場合、通信経路上で盗聴することは困難になり、改ざんにより適切な証明書を持っていないサーバーと通信する場合には警告が表示されるようになります。

表示される警告の内容は?

HTTPのページにアクセスした際、以下のように「保護されていない通信」と表示されるようになります。

また、9月にリリースが予定されているChrome 69では、逆にHTTPSのページで表示されていた「保護された通信」というラベルがなくなります。これは、今後のWebにおいて通信が保護されていることは当たり前のことであって、特別扱いすることではないという考えのようです。

さらに、10月にリリースされるChrome 70では「保護されていない通信」のラベルが赤い警告表示になり、より危険であることを強調したものになる予定です。

HTTPSに対応するためには?

Webサイトをレンタルサーバーで運用している場合は、そのレンタルサーバー会社にSSL証明書を導入するためのオプションがあるかを確認しましょう。証明書はその発行機関や証明する内容によって金額が大きく異なります。通信を保護するだけであれば安価なもので構いません。これを機にWebサイトの信頼性を高めたいのであれば、企業の実在性を証明する企業認証やアドレスバーに社名が表示されるEV認証などを利用してもいいでしょう。

サーバーを自分で設置していたり、クラウドサーバーなど自分で管理している場合は、CSR(Certificate Signing Request、署名リクエスト)を作成し、証明書を自分で申し込んで設置する必要があります。サーバー管理を自分で行うスキルのある方なら特に難しい作業ではないでしょう。

また、同じ内容を表示していたとしてもHTTPとHTTPSでは別のページと見なされるため、SEOの観点からはHTTPにアクセスしてきたユーザーを適切にHTTPSのページへ転送(リダイレクト)する設定も必要になります。具体的には、Apacheの場合は.htaccessか設定ファイル、nginxの場合は設定ファイルを編集してHTTPにアクセスがあった場合はHTTPSにステータスコード301で転送するように設定します。

Apacheの場合を例にあげます。なお、mod_rewriteモジュールが有効になっていないサーバーの場合は先に有効にする必要があります。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

nginxの場合は以下のような設定を追記します。

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

その他、WordPressなどのCMSを使っている場合は設定の変更が必要になります。

自分で設定できない場合は

ご自分で設定ができない場合は業者に依頼することも検討しましょう。Blue Clipでも、HTTPS化の作業代行などを承っております。お気軽にご相談ください。