web-dev-qa-db-ja.com

Apache HTTPS ProxyPass証明書の場所

ProxyPassを使用してHTTPS要求を別のサーバーに渡すApacheサーバーをセットアップしようとしています。

プロキシサーバーALPHAとターゲットサーバーBETAを呼び出しましょう。

ALPHAはHTTPSを実行しませんが、BETAは実行します。

私は最初にALPHAでこの仮想ホスト仕様を使用してみました:

<VirtualHost *:443>
  ServerName mysite.com
  ProxyPass / https://192.168.1.105/   # BETA's IP address
  ProxyPassReverse / https://192.168.1.105/  # BETA's IP address
  ProxyPreserveHost On
  ProxyTimeout 600

  SSLProxyEngine On
  RequestHeader set Front-End-Https "On"
  CacheDisable *
</VirtualHost>

しかし、これを試したとき、Apacheは「[エラー]サーバーはSSL対応である必要がありますが、証明書は構成されていません[ヒント:SSLCertificateFile]」と不平を言いました。

SSL証明書をBETAからALPHAにコピーし、これらの行をALPHAの仮想ホスト仕様に追加する必要がありました。

  SSLEngine on
  SSLCertificateKeyFile /usr/local/ssl/private/BETA_private.key
  SSLCertificateFile /usr/local/ssl/crt/BETA_public.crt
  SSLCertificateChainFile /usr/local/ssl/crt/BETA_intermediate.crt

これでシステムが機能します。しかし、私は何か間違ったことや不必要なことをしたと感じています。アルファ版とベータ版の両方にWebサイトの秘密キーと証明書があります。それは必要ですか?違うやり方でやるべきだったのですか?

2
oz1cz

トラフィックを2回暗号化しているようです-1回はWANで、もう1回はLANで。通常、安全なLAN接続でトラフィックを暗号化する必要はないため、 リバースプロキシSSL終端ポイント として設定されます。

Apache構成から、リバースプロキシ(サーバーアルファ)は、プライベートIPアドレス(192.168.1.105)を介してWebサーバー(サーバーベータ)に接続しています。 SSL証明書にあるホスト名でリバースプロキシにアクセスすると仮定します。

WANを介して接続するユーザーに対してSSLが適切に機能するには、リバースプロキシ(サーバーアルファ)に証明書、キー、およびキーチェーンをインストールする必要があります。 Webサーバー(Server BETA)については、ユーザーが直接接続していない場合、有効なSSL証明書をインストールする必要はありません。

1