背景情報:(下の質問)
8つのサーバーがあり、すべてが一意のIPアドレスを持っているクライアントに接続しようとしています。クライアントは、すべてのサーバーで同じSSL証明書を使用します(この例では、cert name == www.all_servers.com)。クライアントは、httpsを介した着信要求のみを許可します。
さまざまなURIマッピングをさまざまなサーバーにマップするmod_proxyを使用してApacheプロキシを作成しようとしています。例えば:
https://PROXY_SERVER/SERVER1/{REQUEST}
これにより、{REQUEST}がserver1に送信されます
https://PROXY_SERVER/SERVER2/{REQUEST}
{REQUEST}をserver2に送信します。これまでのところ、非常に簡単です。
Apache 2.2では、次のようなIPアドレスを使用してこれを実現できました。
SSLProxyEngine On
ProxyPass /server1 https://1.1.1.1/
ProxyPassReverse /server1 https://1.1.1.1/
ProxyPass /server2 https://1.1.1.2/
ProxyPassReverse /server2 https://1.1.1.2/
これは、Apache 2.2が証明書が一致したかどうかを確認しなかったためです(1.1.1.1!= www.all_servers.com)
ただし、Apache 2.4では、証明書の問題が発生しています(当然)。 (この正確なコードはApache 2.2ボックスで動作します)
[Thu Oct 10 12:01:48.571246 2013] [proxy:error] [pid 13282:tid 140475667224320] (502)Unknown error 502: [client 192.168.1.1:48967] AH01084: pass request body failed to 1.1.1.1:443 (1.1.1.1)
[Thu Oct 10 12:01:48.571341 2013] [proxy:error] [pid 13282:tid 140475667224320] [client 192.168.1.1:48967] AH00898: Error during SSL Handshake with remote server returned by /server1/asd
[Thu Oct 10 12:01:48.571354 2013] [proxy_http:error] [pid 13282:tid 140475667224320] [client 192.168.1.1:48967] AH01097: pass request body failed to 1.1.1.1:443 (1.1.1.1) from 192.168.1.1 ()
/ etc/hostsは使用できません。1台のサーバーが機能するため、次を使用します。
1.1.1.1 www.all_servers.com
SSLProxyEngine On
ProxyPass /server1 https://www.all_servers.com/
ProxyPassReverse /server1 https://www.all_servers.com/
しかし、多くのサーバーはそうしません
つまり、実際の質問:
Mod_proxyに一致しない証明書を無視させる方法はありますか。または、これを行うより良い方法があります。
これで助けてくれてありがとう!
SSLProxy*
Apacheサーバーのオプション(リバースプロキシ接続に関する限り、クライアントです)。
これはSSLProxyCheckPeerCN
(2.2ではデフォルトでオフ、2.4ではデフォルトでオン)で行われましたが、これがIPアドレスでどのように機能するかわかりません(CNにIPアドレスがあるので標準)。 Apache Httpd 2.4にはSAN(SSLProxyCheckPeerName
)をチェックするための新しいオプションがありますが、IPアドレスに対してどのように動作するかわかりません。
[〜#〜] dns [〜#〜]SAN拡張またはCNにIPアドレスがある [〜#〜] https [〜#〜] に準拠した標準:
DNSName型のsubjectAltName拡張が存在する場合、それをIDとして使用する必要があります。それ以外の場合、証明書のSubjectフィールドの(最も具体的な)Common Nameフィールドを使用する必要があります。共通名の使用は既存の慣習ですが、非推奨であり、代わりにdNSNameを使用することを証明機関に推奨します。
[...]
場合によっては、URIはホスト名ではなくIPアドレスとして指定されます。この場合、iPAddress subjectAltNameは証明書に存在する必要があり、URIのIPと正確に一致する必要があります。