web-dev-qa-db-ja.com

SSLとの混合コンテンツ、リバースプロキシの背後にあるワードプレス

SSLの問題が混在するコンテンツに遭遇しました。私は自分のテスト用ワードプレスサイト用のSSL証明書をリバースプロキシ(articaproxy)の背後で暗号化しようと申し込んだ。

同じSSL証明書がリバースプロキシサーバーとwordpress仮想ホストにデプロイされています。

リバースプロキシのhttp/httpsリダイレクトは正常に機能します。

Httpsをテストするために、siteurlとhomeのURLにmysqlデータベースのhttpsを強制しました。

私のワードプレスのWebサイトを開いている間、そしてshow block contentをクリックしてください。 chrome consoleプロンプト 'このページは安全ではありません(HTTPSが壊れています)。

Chromeコンソールはまた、HTTPSを介して提供されていないスタイルシート/スクリプト/画像があることを報告しています stylesheet/script/image are not served over HTTPS 

これを修正するために関連するプラグインをインストールしようとしましたが失敗しました。だから彼らは無効になっています。 plugins to fix mixed content 

ERR_TOO_MANY_REDIRECTSのため、ワードプレスの管理領域を読み込めません

管理者ログオンページの問題で混在したコンテンツとリダイレクトが多すぎる問題を修正する方法を知りたいです。

提案は大歓迎です。

******************更新***********************

こんにちは〜私は私のtest wordpressサイト設定に関するより多くの詳細を提供したいです。

WP_SITEURL、WP_HOME、HTTPSに関連するwp-config.php値の一部:

define('WP_SITEURL', 'https://'.$_SERVER['HTTP_Host']);
define('WP_HOME', 'https://'.$_SERVER['HTTP_Host']);
define('FORCE_SSL_ADMIN', true);

if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';

ワードプレスDBのwp_optionsのフィールドからの 'siteurl'と 'home'の値:

https://yuantafood.i-shopping.email
https://yuantafood.i-shopping.email

上記のように、私は自分の内部IPアドレスでのみwp-adminページにログインできました。外部IP/FQDNでwp-adminページにログインしようとすると、エラーのためロードできません:ERR_TOO_MANY_REDIRECTS。

多くの投稿でグーグルを使って、.htaccessを使った強制的なSSLは他の人にとっては混在するコンテンツの問題を回避するために働いたようです。

私はまた.htaccessを編集するために多くの方法を試してみました、主に301永久リダイレクトと302一時リダイレクト。

wordpressフォルダ内の.htaccessファイルの値(301)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

# RewriteBase /
# RewriteRule ^index\.php$ - [L]
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule . /index.php [L]

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://yuantafood.i-shopping.email/$1 [R=301,L]

</IfModule>
# END WordPress

# Wordfence WAF
<IfModule mod_php5.c>
php_value auto_prepend_file '/var/www/wordpress/wordfence-waf.php'
</IfModule>
<Files ".user.ini">
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Files>
# END Wordfence WAF

301と302の両方のリダイレクトが失敗し、ERR_TOO_MANY_REDIRECTSのためにすべてのサイトをロードできませんでした。

1
Owen

実行しているすべてのforce SSLプラグインを削除し、wp-config.phpおよび.htaccessのデフォルト設定に戻してから、HTTPSを使用するよう強制します。これにより、現在発生しているすべての競合とリダイレクトループが削除されます。その後、次の手順に従います。

  1. /に移動してダウンロード 相互接続ITのデータベース検索と置換スクリプトはこちら
  2. ファイルを解凍し、あなたのWordPressがインストールされているフォルダ(ルート)をドロップし、replacescreenshot )にフォルダの名前を変更します
  3. ブラウザで作成した新しいフォルダに移動し(例:http://yuantafood.i-shopping.email/replace)、 検索/置換ツールが表示されます
  4. "…で検索"と "で置換"のフィールドには以下のとおりです。
    • 置換 http://yuantafood.i-shopping.email/(HTTP、非SSL)
    • With https://yuantafood.i-shopping.email/(HTTPS)

スクリプトを実行する前に、actionsの下にあるdry runボタンをクリックして、何が置き換えられるのかを確認できます。完了したら、/replace/フォルダを必ず削除してください。

上記の手順に従って、すべてのリンクがHTTPSで実行されていることを確認してください。ただし、 Remove HTTPプラグイン を使用して、混在するコンテンツの問題が発生しないようにすることもできます。

WP-Adminの[設定] - > [一般]にある[WordPressアドレス(URL)]と[サイトアドレス(URL)]を、httpからhttpsに変更しましたか。キャッシュをフラッシュしてもう一度確認しますか?それでもプロトコルが混在している場合は、画像や外部リンクなどのハードコーディングされたURLから来た可能性があります。そのままにするか、修正することができます。私がSSLに切り替えたとき、私はこれを通過しました、あなたは私の article の後の部分を見てみることができます。

2
hcheung