web-dev-qa-db-ja.com

httpプロキシ経由でOCSPステープリングを有効にする方法は?

ApachehttpdとNginxを実行しているLinuxWebサーバーでSSL証明書にOCSPステープリングを利用したいと思います。ただし、NginxとApacheはどちらも、デフォルトでOCSPレスポンダーに直接アクセスする必要があります。

ただし、私のWebサーバーはダイレクトサーバーリターン/ダイレクトルーティングを使用してロードバランサーの背後に配置されているため、ホストにはパブリックIPアドレスが構成されており、これらのパブリックIPで着信トラフィックを受信および応答しますが、サーバーはこれらのパブリックIPを新しいものに使用できません、発信接続。サーバーはプライベート(非パブリックIPスペース)ネットワーク上で実行されており、NAT経由ではなく、HTTPプロキシ経由でパブリックインターネットにアクセスできます。

セキュリティの観点から、これはまったく問題ありません。 OCSPステープリングのためだけにネットワークにNATを導入したくありません。また、OCSPリクエスト(とにかくHTTP)にHTTPプロキシを使用しても問題ありません。

私にとっての「最良の」解決策は、OCSPレスポンダーにアクセスするためにHTTPプロキシを使用するようにApache/Nginxを構成する場所ですが、私が見る限り、そうするオプションはありません。

私が出くわした最も近いオプションは

  • apacheのSSLStaplingForceURL(x509 AIAエンドポイントを単にオーバーライドする)をリバースプロキシで使用します。リバースプロキシは、パブリックインターネットアクセスを持っています。リバースプロキシの仕事は、ホストヘッダーとポートを実際のOCSPレスポンダーで書き換えて、それに接続することです。
  • ローカルiptablesルールを使用してNATローカルHTTPプロキシへのOCSPレスポンダーに向けられたローカル発信トラフィック。OCSPレスポンダーの変更される可能性のあるIPアドレスと戦うために、静的(偽の)/ etc/hostsのエントリ。

これらのオプションはすべて私にはあまりよく見えず、深刻な欠点があります(netfilter-NATはIPに基づいています。ocspレスポンダーの宛先IPが変更されるたびに、ルールを調整する必要があります)-これ以上見逃しませんでした合理的な代替手段またはApacheまたはNginxの「正しい」構成オプション?

3

これを試すことができます: http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_stapling_file

設定すると、サーバー証明書で指定されたOCSPレスポンダーにクエリを実行する代わりに、ステープルされたOCSP応答が指定されたファイルから取得されます。

ファイルは、「opensslocsp」コマンドによって生成されたDER形式である必要があります。

3
Anatoly

Apache 2.4.19以降、これはApacheによって直接サポートされています。

Apache構成でディレクティブ SSLOCSPProxyURL を設定して、HTTPプロキシを指すようにします。次に例を示します。

SSLUseStapling  on
SSLOCSPProxyURL http://my-outgoing-proxy.example:3128/
2
Philipp Wendler