web-dev-qa-db-ja.com

SSLがカスタマイザを破る:ページがajaxから返されない

私は、Comodo SSL証明書を使ってWordPressをインストールしました。 WordPress HTTPSプラグイン がインストールされており、AZテーマを使用していますが、管理者はHTTPS経由でロードするように設定されています。ここまでは順調ですね。

テーマカスタマイザで、私は永続的な読み込みアイコンを取得します(WSODと混同しないでください)。ホームページのコンテンツを元に戻すAJAX呼び出しは空です。トークンWP_CUSTOMIZER_SIGNATUREを節約するためです。それがすべての応答です。 WordPressのHTTPSプラグインを無効にした場合(またはそうでなければSSLを介した管理者のロードを無効にした場合)、カスタマイザは非常にうまく機能します。他のプラグインを無効/有効にしても効果はありません。これは在庫の二十五のテーマでも起こります(下の写真)。

これは私がFirebugで見ているもののスクリーンショットです(そしてブラウザ間でもブラウザスタックVM上でも再現可能です)。

Screenshot of Firebug console in customizer view

関連性がある場合、このサイトはServerPilotを使用してDigitalOceanのドロップレットでホストされています。他のWordPressサイトも同じドロップレットでホストされていますが、他のSSL対応サイトも同じ動作をします。 ModSecurityは私の知る限りではインストールされていません、そして私は200ステータスコードを取得しているので私はそれが この問題を持っているとは思わない .

また、私が言うことができる限り、SHA-1メッセージングは​​誤検知のように見えます(そして、FirefoxはSHA-1の使用に基づいてコンテンツをブロックする段階にはまだないと思います)。テストのために明示的にオフにし、そのチケットに記載されている修正を試みたのでうまくいかなかったので、私はそれが zlib.output_compression bug だとも思いません。

私は自分の問題に完全に一致するものを何も見つけていないので、私が見落としてきた何かばかなことがあると思います。どんな助けでも大いに評価されます、そして、どんな追加情報が役に立つかもしれないか私に知らせてください。

6
Kelly Carter

あなたの質問に基づいて、私はこれがあなたがSSLを有効にするために使用しているプラ​​グインだと思います: WordPress HTTPS

プラグインが2年で更新されず、サポートの質問も解決されていないことを考えると、最新バージョンのWordPressとの互換性の問題がいくつかあるかもしれません(この記事を書いている時点では4.6)。あなたのウェブサイトのURLがどこでもHTTPSを実行していることを確認することを私はお勧めします.

これは、データベースで次のSQLクエリを実行することで実行できます(phpMyAdmin)。

UPDATE wp_options SET option_value = replace(option_value, 'HTTP_URL', 'HTTPS_URL') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'HTTP_URL','HTTPS_URL');
UPDATE wp_posts SET post_content = replace(post_content, 'HTTP_URL', 'HTTPS_URL');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'HTTP_URL','HTTPS_URL');

値を次の値に置き換えます。

  • HTTP_URL>あなたのHTTPリンク(http://some.site
  • HTTPS_URLあなたのHTTPSリンク(https://some.site

こうすることで、コンテンツが混在するリンクが壊れるのを防ぐことができます。私は同様の問題を抱えているWordPressスレッドも見つけましたが、それをすでに見たかどうかはわかりません。

テーマカスタマイザの問題

ANSWER:これはグローバルURLの不一致によるものです

ある時点であなたのプラグインの文字列カスタマイザはまだhttpの代わりにhttpsを通して呼ばれるいくつかの要素を認識しない、プラットフォーム全体を修正するために、相対パスの代わりに絶対パスを含む多くのプラグイン次のことができます。

  1. WP Migrate DBというプラグインをインストールします
  2. インストールして有効化したら、[ツール] - > [データベースの移行]に移動します。
  3. 新しいURLとファイルパスは同じである必要があります。
  4. バックアップをダウンロードしてください(なぜあなたはphpmyadminやdbmsから直接エクスポートするのではなくこれを言ったのですか?その情報を得るためのより安全な方法です、それがすべてです。バックアップ "エラープルーフ方法)。
  5. 圧縮されていないコピーを単独で特定のディレクトリに保存します。
  6. ターミナルでそのディレクトリに行き、次のコマンドを実行します。

Sudo find . -type f -name '*.sql' -exec sed -i '' s,http://yoursite,https://yoursite,g {} +

  1. PhpmyadminまたはWeb DBMSにインポートしている新しいファイルをアップロードします。

  2. エラーは消えたはずです。

IMPORTANT.

うまくいかなかった場合は、手順5の残りのバックアップをそのまま残してください。

追加情報。 WebサイトのルートURLがhttpsではなくhttpで始まっていることを確認しましたか?

設定 - >一般で確認できます。

ワードプレスのアドレス(URL)

サイトアドレス(URL)

がんばろう。

0
luis