私はELSの背後で実行されている1つのEC2インスタンスを持っており、AWS Certificate Manager(ACM)を使ってHTTPSを有効にしています。AJAXが混在したコンテンツで失敗するHTTP/HTTPSエラー、HTTPSを強制できません
いくつかの場所で示唆されているように、HTTP(ポート80)とHTTPS(ポート44)をインスタンスのHTTP(ポート80)にマッピングしました。
私はまた、ファイル.htaccessファイルするためにこれらの行を追加することにより、セキュアな接続を強制的に有効:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
美しく動作していることすべてを。すべてのページが安全なコンテンツを期待どおりに表示し、混合コンテンツに関する警告はコンソールに表示されません。
私はAJAX呼び出しを行うページでのみ、混在したコンテンツについてはエラーが発生し、Chromeでのみ表示されます。 FireFoxは正常に動作しますが、コンソールにはエラーが表示されます。
エラー(FireFoxの):
コンテンツセキュリティポリシー:
混在したコンテンツ: 'HTTPS'
エラー(クローム)を使用するには 'http://example.com/myapi/get_company/?code=abcd&limit=8' を安全でない要求をアップグレード'https://example.com/mypage'のページがHTTPS経由でロードされましたが、安全でないXMLHttpRequestエンドポイント 'http://example.com/myapi/get_company/?code=abcd&limit=8'が要求されました。このリクエストはブロックされました。 HTTPS経由でコンテンツを配信する必要があります。
私はchrome://net-internals/
を開いて、私はHTTPのページへのリダイレクトポイントではなく、HTTPSので、最初のものはHTTP 301 Permanent Redirect
を受信して、第2のいずれかに障害が発生した2つのコールがある見ることができるものから。
AJAX呼び出しは次のようになります。
$url = "/myapi/get_company?code=" + e;
apiJson = $.ajax({
url: $url,
dataType: 'json',
data:{
limit:8
},
success: function(data) { //Some code here },
error: function(jqXHR, textStatus, errorThrown) { //Some code here }
});
私は、プロトコルを含む完全なURLを与えることを試みたが、それは違いはありませんでした。
なぜRewriteCond%{HTTPS}!=の条件が必要ですか? – Shibashis