web-dev-qa-db-ja.com

HTTPS接続は画像により「安全ではない」

現在、Webサイトで作業しており、SSL証明書を正常にインストールしました。

GeoTrust SSL/TLSチェッカーは、証明書チェーン(CAを含む)が適切にインストールされていることを確認しました。 Chromeではすべてが正常に見えますが、私の南京錠は緑色ではなく、Firefoxでは、暗号化されていない要素が存在するため、Webサイトは安全ではないと実際に述べています。

オンラインサービスを使用してその理由を確認しましたが、実際に私の画像は安全なURLとは見なされていません。この状況にどのように対処しますか、つまり、どのように自分のウェブサイトに安全に画像を埋め込むのですか?

14
mti_

現在、画像タグは次のようになっている必要があります。

<img src="http://example.com/images/image.jpg">

そこにあるhttpは、画像が安全に配信されないことを意味します。攻撃者は、送信中に画像を変更し、それにより、セキュリティ保護されていないページがユーザーに表示される方法を変更する可能性があります。

代わりに、次のいずれかを使用して画像を安全に提供できます。

  • httpsへの明示的なリンク:<img src="https://example.com/images/image.jpg">
  • 独自のドメインの画像への相対リンクを使用します:<img src="/images/image.jpg">
  • プロトコル相対リンクを使用して、他のドメインの画像を使用します:<img src="//example.com/images/image.jpg">

明示的なhttpsは常に(ページが安全に提供されない場合でも)画像を安全に提供しますが、相対リンクはページが安全に提供される場合にのみ画像を安全に提供します。

Firefoxおよびchromeでは、南京錠をクリックして、問題に関する詳細情報を取得できます。これを行った後、ページのすべての画像のリストを表示するFirefoxのスクリーンショットを次に示します。リストをスキャンして、どれがhttpであるかを簡単に確認できます。

32

問題は、ページがhttpsではなくhttpの場所からリンクを提供していることです。これは、画像などのリソースを参照するために絶対httpリンクを使用しているためです。 httpまたはhttpsのいずれかでリンクを参照し、この問題を回避できるようにする2つの優れた方法があります。

これらのリンクを見つけて、次のいずれかに変更する必要があります。

  1. 相対リンク:すなわち。 /wp-content/yourtheme/images/image1.jpg
  2. または//ドメインの先頭に配置//example.com/wp-content/wp-content/yourtheme/images/image1.jpgのように、これにより、これらのリソースが、要求が行われたものに基づいてhttpまたはhttpsで提供されます。

ChromeとFirefoxの両方で、南京錠アイコンをクリックしてからクリックスルーして、問題のある安全でないリンクのリストを表示できます。 ブラウザで強調表示されている画像やその他のリソースが表示されないが、エラーが引き続き発生する場合は、httpを介して絶対にリンクを参照しているjavascript呼び出しがあることがわかります

5
garth

WebページでSSLを有効にした後に画像を表示できない場合、これらの提案が役に立たない場合は、cPanelの[セキュリティ]セクションにあるcPanelのホットリンクの設定を確認してください。この設定では、http://example.comおよびhttp://www.example.comが有効になっており、これらのhttpsバージョンが有効になっていないときに、画像にアクセスできます。

1
Web Junk

それは本当に基本的なことです。 SSL(https)を介して提供されるWebサイトを構築する場合httpsで始まるコード内の参照はセキュリティ警告をスローします-リンク以外。ほとんどの(すべての)ブラウザは、httpへのデフォルトの相対リンクにも注意してください。したがって、/ uploads/12/5/img.jpgまたは/js/jquery.jsを参照する場合、転送プロトコルはデフォルトでhttpになります-これは非常に迷惑です。

すべてのブラウザで警告の処理は少し異なりますが、何らかのメッセージが表示されます。一般的な説明は、新しいブラウザほどメッセージが深刻になるということです。一部の古いブラウザはこれらのエラーを事実上無視しますが、新しいブラウザは「s」が欠落しているためにあなたの世界が攻撃を受けているように振る舞います。

1
blankip