Nginxリバースプロキシを介してApachehttpサイトを安全なhttpsサイトに変える

3
Passiday 2020-10-13 03:43.

ApacheWebサーバーで実行されている古いWordPressサイトをサポートする必要があります。安全性を高めるために、このApacheサーバーはDockerコンテナー内にあり、Nginxリバースプロキシ構成を介して世界中からアクセスできます。このサイトは現在http経由で提供されており、httpsに移動したいと思います。

私には2つの選択肢があると思います:

  1. SSL証明書はNginxサイトにインストールされ、proxy_passApacheコンテナのプレーンhttpサイトにインストールされます。

    server {
        listen      443 ssl;
        server_name www.example.com;
    
        ssl_certificate /etc/nginx/ssl/letsencrypt/live/www.example.com/fullchain.pem;
        ssl_certificate_key /etc/nginx/ssl/letsencrypt/live/www.example.com/privkey.pem;
    
        access_log  /var/log/nginx/example.com.access.log;
    
        location /  {
            proxy_pass       http://Apache2-PHP5.6:80;
            proxy_set_header Host            $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }
    }
    

    このシナリオでは、Apacheサーバーの観点から、引き続きhttp経由でサイトにサービスを提供しています。

  2. これはより面倒です。SSL証明書はゲートウェイNginxサーバーとプロキシされたApacheサイトの両方にインストールされます。次に、構成値でに変更httpする必要があります。httpsproxy_pass

最初のシナリオですべてがうまくいったらいいのにと思います。しかし、Apacheがhttp経由で何かを提供していると感じているという事実は、いくつかの問題を引き起こします。再構成/デバッグしたくない隠されたURLリダイレクトがいくつかあります。そして、それらのURLリダイレクトは次のようになります。要求されたURLがhttp://www.example.comである場合、それはとして書き換えられます(httpステータス301)http://www.example.com/main。このリダイレクトはブラウザによって受信されるため、最初のリクエストがhttps経由であったとしても、リダイレクトされるURLはhttp1になります。また、サイトのhtmlには、プロトコル参照も含む独自のリソース(JavaScriptおよびCSSファイル)へのサーバーフルパスhrefが含まれています。これらのhrefがリクエストの作成方法からプロトコルを採用するのか、それともハードコーディングされているのかは、現時点では明確ではありません。とにかく、残念ながら、これはいくつかの深刻な掘り下げなしでは機能しません。

したがって、オプション2が残ります。試してみましたが、機能します。Nginxとコンテナ化されたApacheの両方で同じSSL証明書を設定できます。しかし、これが本当に実行されたままにしておくべき方法であるかどうかを知りたいです。Apacheサーバーはコンテンツがhttps経由で提供されていることを認識していますが、リクエストごとに2回のSSLが発生しているためです。気分が悪い。

3 answers

3
hardillb 2020-10-13 03:48.

proxy_set_header X-Forwarded-Proto "https";最初のセットアップでの宣言を使用して、着信リクエストがHTTPSリクエストからプロキシされていることをApacheに伝えることができるはずです。

3
Mark 2020-10-13 06:16.

オプション#1の問題を解決するには(あなたが言ったように、これははるかに優れたアプローチです)、nginx構成でHTTP_X_FORWARDED_PROTOを設定します。

proxy_set_header X-Forwarded-Proto $scheme;

この行をwp-config.phpに追加して、WordPressを認識できるように構成します。

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

このソリューションのバリエーションについては、Wordpressのサポート記事も参照してください。

1
HermanB 2020-10-13 05:57.

通常、私はリバースプロキシですべての面倒な作業を行い、公開されるバックエンドサイトを可能な限りオリジナルに保つことを好みます。

あなたの問題は本質的に、(WordPress)バックエンドが訪問者に使用させたいものとは異なる(絶対)URIを生成して使用することにあるようです。

次の方法でこれを解決することができます(HTML)コンテンツ書き換えワードプレスが持つnginxの中で生成するngx_http_sub_moduleを。これにより、次のような絶対URLを書き換えることもできます。

    location / {    
         sub_filter 'http://example.com/' 'https://www.example.com/' ;
         sub_filter 'http://www.example.com/' 'https://www.example.com/' ;
         sub_filter_once off;
         proxy_pass       http://Apache2-PHP5.6:80;
         proxy_set_header Host            $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                
    }

Related questions

MORE COOL STUFF

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは、夫に会ったとき、典型的な交際のアドバイスに逆らいました。

マイケルシーンが非営利の俳優である理由

マイケルシーンが非営利の俳優である理由

マイケルシーンは非営利の俳優ですが、それは正確にはどういう意味ですか?

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

特徴的なスターのコリン・エッグレスフィールドは、RomaDrama Liveでのスリル満点のファンとの出会いについて料理しました!加えて、大会での彼のINSPIREプログラム。

「たどりつけば」をオンラインでストリーミングできない理由

「たどりつけば」をオンラインでストリーミングできない理由

ノーザンエクスポージャーが90年代の最も人気のある番組の1つになった理由を確認するには、Blu-rayまたはDVDプレーヤーをほこりで払う必要があります。

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖は、世界で2番目に大きいボイリング湖です。そこにたどり着くまでのトレッキングは大変で長いですが、努力する価値は十分にあります。

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

サロンからのヘアトリミングや個人的な寄付は、油流出を吸収して環境を保護するのに役立つマットとして再利用できます。

これらの22ドルのBluetoothイヤフォンであなたの次のジョギングのコードを切ってください

これらの22ドルのBluetoothイヤフォンであなたの次のジョギングのコードを切ってください

取引を投稿するたびに、これらのMpow Swift Bluetoothイヤフォンを大量にスナップしますが、この時点まで見逃していた場合は、別のチャンスがあります。スマートウォッチを所有していて、近くに電話がなくても音楽を聴きたい場合は、これらは必須ですが、ジョギング、芝刈り、またはその他の取得したくないアクティビティにも最適です。ワイヤーに絡まっています。

オフサイドコールを逃したことで2回目の残業でライトニングウィン

オフサイドコールを逃したことで2回目の残業でライトニングウィン

タンパベイは、モントリオールとのスタンレーカッププレーオフシリーズで1-0のリードを奪い、ライトニングのニキータクチェロフが、ベルセンターでの2回目の延長戦の2分後にネットを見つけ、2-1の最終スコアを獲得しました。しかし、ハブスのファンは、勝った所有物のゾーンにパックを持ち込んだときにタンパベイが明らかにオフサイドだったという事実について当然のことながら騒いでいます:誰もがサドンデスの残業プロセスの欠陥を探すべきではありませんが、これはサドンデスの残業の終焉を求める恐ろしい人が指摘するようなもの。

ホラー:H1Z1の発売の舞台裏

ホラー:H1Z1の発売の舞台裏

ゲームを起動するのは難しいです。では、世界を見て注目を集めるタイトルをリリースし、事態が悪化するとどうなるでしょうか。多くの物。

Be My Eyesは、救いの手を必要とする視覚障害者とボランティアをペアにします

Be My Eyesは、救いの手を必要とする視覚障害者とボランティアをペアにします

iOS:ご想像のとおり、視覚的な手がかりのない最も単純な決定でさえ、非常に困難な場合があります。Be My Eyesは、ライブビデオフィードを通じて、目の見える人と視覚障害者を結び付け、その名前が示すように、目であり、オブジェクトを読んだり、周囲をナビゲートしたりするのに役立ちます。

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

イーサン プラスの誕生日のお祝いは、TLC のウェルカム トゥ プラスビルのシーズン 4 のフィナーレで、戦争中の母親のキム プラスと妻のオリビア プラスを結びつけました。

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

ケイト・ミドルトンはロンドンの水辺で一日を過ごし、さらにジェニファー・ロペス、ジュリアン・ハフなど

ケイト・ミドルトンはロンドンの水辺で一日を過ごし、さらにジェニファー・ロペス、ジュリアン・ハフなど

ケイト・ミドルトンはロンドンの水辺で 1 日を過ごし、ジェニファー・ロペス、ジュリアン・ハフなども。ハリウッドからニューヨークまで、そしてその間のあらゆる場所で、お気に入りのスターの活躍をご覧ください!

ウィスコンシン川でのナイフ攻撃で 17 歳の少年が刺されて死亡、他の 4 人が負傷したままになっている

ウィスコンシン川でのナイフ攻撃で 17 歳の少年が刺されて死亡、他の 4 人が負傷したままになっている

捜査官は、グループと容疑者が攻撃の前にお互いを知っていたかどうかを調べています

滑走路着陸

滑走路着陸

晩夏と秋はノスタルジックな季節。街灯は雨で濡れた通りに光を放ち、足元の葉 - 夕暮れの影の中で落ち着いた赤オレンジ - は過ぎ去った日々を思い出させます。

実際に変換するコンテンツ戦略を作成することを想像してみてください。それが可能だ。

実際に変換するコンテンツ戦略を作成することを想像してみてください。それが可能だ。

2021 年には、サービスを提供する顧客と顧客に伝えるストーリーについて知っていることをすべて再考することをお勧めします。あとずさりする。

マンモスロスは私の心を愛に開いた

マンモスロスは私の心を愛に開いた

フェリックス ザ キャットの 9 歳の誕生日の日に、大人になってからの最大の損失の 1 つである 2013 年のソフィーを思い出します。私はこのエッセイを書き、2013 年にこのプラットフォームで簡単に共有しました。

あなたがインターネットがあなたに望んでいる人になれないとき

あなたがインターネットがあなたに望んでいる人になれないとき

私は「列車事故」という言葉が嫌いです。人々は自分自身の道徳的羅針盤に安らぎを覚え、そうすることで自分自身が判断を下していることに気づきます。

Language