概要
ページがHTTPSで安全に配信されるようになったら、そのページ上で読み込まれるあらゆるもの、つまりすべての画像、スクリプト、スタイルシート、埋め込み動画も、同じくHTTPSで読み込まれるべきです。「混在コンテンツ(mixed content)」とは、メインのページは安全であるにもかかわらず、その一部が今も古い暗号化されていないhttp://で読み込まれている状態を指します。多くの場合、サイトをHTTPSに移行した際に更新されなかった古い画像リンクや埋め込みコードが原因です。
ページが同時に安全な接続と安全でない接続を「混在」させて配信することになるため、「混在」と呼ばれます。これはそもそもHTTPSに切り替えた目的の多くを台無しにしてしまいます。
重要な理由
ブラウザは混在コンテンツを見た目だけの問題ではなく、実際のセキュリティ上の懸念として扱います。安全でないリソースの読み込みを黙ってブロックしてしまう(画像やスクリプトが単に表示されなくなる)こともあれば、アドレスバーに目に見える警告アイコンを表示し、本来鍵マークが与えるはずだった信頼を打ち消してしまうこともあります。セキュリティを意識する訪問者から見れば、どちらの結果もHTTPSをまったく使っていないよりも悪い印象を与えます。何かが実際に壊れている、あるいは中途半端に設定されているように見えるからです。
混在コンテンツは、たいていページのコードの中に埋もれた1つか2つの見落とされたリンク(古い画像URL、サードパーティの埋め込みなど)が原因であることが多いため、見つけてしまえば、このリストの中でも比較的簡単に完全に解決できる問題の一つでもあります。
修正方法
- ブラウザでページを開き、開発者コンソール(通常
F12キー、または右クリック→検証→Consoleタブで開けます)で「mixed content」または「insecure content」という警告がないか確認します。 - それぞれの警告には、今も
http://で読み込まれている具体的なリソース(画像、スクリプト、スタイルシートのURL)の名前が示されます。 - それぞれのURLの先頭を
https://に変更します。ページ上の特定のリンクが更新されていなかっただけで、ほとんどのリソースはHTTPSでも利用可能です。 http://版しか提供していないサードパーティの埋め込み(動画、ウィジェット、広告など)については、提供元がHTTPS対応の埋め込みコードを用意していないか確認してください。- ページを再読み込みし、コンソールを再確認して警告が消えたことを確認しましょう。